core/queue: Call g_queue_*() functions directly
This is a first step to removing core/containers/queue Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
e8d7576704
commit
6bb08ddbaa
56
core/queue.c
56
core/queue.c
|
@ -51,6 +51,34 @@ static inline unsigned int __queue_added(struct queue *queue,
|
|||
return pos;
|
||||
}
|
||||
|
||||
static inline unsigned int __queue_add_head(struct queue *queue,
|
||||
struct track *track)
|
||||
{
|
||||
g_queue_push_head(&queue->q_tracks._queue, track);
|
||||
return __queue_added(queue, track, 0);
|
||||
}
|
||||
|
||||
static inline unsigned int __queue_add_tail(struct queue *queue,
|
||||
struct track *track)
|
||||
{
|
||||
g_queue_push_tail(&queue->q_tracks._queue, track);
|
||||
return __queue_added(queue, track, queue_size(queue) - 1);
|
||||
}
|
||||
|
||||
static inline unsigned int __queue_add_sorted(struct queue *queue,
|
||||
struct track *track)
|
||||
{
|
||||
struct _q_iter it;
|
||||
|
||||
_q_for_each(&queue->q_tracks, &it) {
|
||||
if (track_less_than(_q_iter_val(&it), track, queue->q_sort) > 0) {
|
||||
g_queue_insert_before(&queue->q_tracks._queue, it.it_iter, track);
|
||||
return __queue_added(queue, track, it.it_pos);
|
||||
}
|
||||
}
|
||||
return __queue_add_tail(queue, track);
|
||||
}
|
||||
|
||||
static inline bool __queue_erase(struct queue *queue, struct _q_iter *it)
|
||||
{
|
||||
struct track *track = (struct track *)_q_iter_val(it);
|
||||
|
@ -62,12 +90,14 @@ static inline bool __queue_erase(struct queue *queue, struct _q_iter *it)
|
|||
|
||||
static inline void __queue_remove(struct queue *queue, struct _q_iter *it)
|
||||
{
|
||||
struct track *track = (struct track *)_q_iter_val(it);
|
||||
unsigned int pos = it->it_pos;
|
||||
struct track *track = (struct track *)_q_remove_it(&queue->q_tracks, it);
|
||||
GList *link = it->it_iter;
|
||||
|
||||
_q_iter_prev(it);
|
||||
g_queue_delete_link(&queue->q_tracks._queue, link);
|
||||
|
||||
queue->q_length -= track->tr_length;
|
||||
if (queue->q_cur.it_pos == pos)
|
||||
_q_iter_prev(&queue->q_cur);
|
||||
if (queue->q_ops)
|
||||
queue->q_ops->qop_removed(queue, pos);
|
||||
}
|
||||
|
@ -112,7 +142,7 @@ void queue_init(struct queue *queue, unsigned int flags,
|
|||
|
||||
queue->q_cur.it_pos = -1;
|
||||
queue->q_cur.it_iter = NULL;
|
||||
_q_init(&queue->q_tracks);
|
||||
g_queue_init(&queue->q_tracks._queue);
|
||||
|
||||
queue->q_private = __queue_init(queue);
|
||||
}
|
||||
|
@ -139,17 +169,11 @@ void queue_unset_flag(struct queue *queue, enum queue_flags flag)
|
|||
|
||||
unsigned int queue_add(struct queue *queue, struct track *track)
|
||||
{
|
||||
unsigned int pos;
|
||||
|
||||
if (queue_has_flag(queue, Q_ADD_FRONT))
|
||||
pos = _q_add_head(&queue->q_tracks, track);
|
||||
else if (queue->q_sort)
|
||||
pos = _q_add_sorted(&queue->q_tracks, track,
|
||||
track_less_than, queue->q_sort);
|
||||
else
|
||||
pos = _q_add_tail(&queue->q_tracks, track);
|
||||
|
||||
return __queue_added(queue, track, pos);
|
||||
return __queue_add_head(queue, track);
|
||||
if (queue->q_sort)
|
||||
return __queue_add_sorted(queue, track);
|
||||
return __queue_add_tail(queue, track);
|
||||
}
|
||||
|
||||
void queue_erase(struct queue *queue, unsigned int index)
|
||||
|
@ -186,7 +210,7 @@ void queue_clear(struct queue *queue)
|
|||
{
|
||||
unsigned int n = queue_size(queue);
|
||||
|
||||
_q_clear(&queue->q_tracks);
|
||||
g_queue_clear(&queue->q_tracks._queue);
|
||||
__queue_clear(queue, n);
|
||||
}
|
||||
|
||||
|
@ -235,7 +259,7 @@ struct track *queue_next(struct queue *queue)
|
|||
|
||||
void queue_resort(struct queue *queue)
|
||||
{
|
||||
_q_sort(&queue->q_tracks, track_less_than, queue->q_sort);
|
||||
g_queue_sort(&queue->q_tracks._queue, track_less_than, queue->q_sort);
|
||||
|
||||
for (unsigned int i = 0; i < queue_size(queue); i++)
|
||||
__queue_updated(queue, i);
|
||||
|
|
|
@ -87,7 +87,7 @@ static inline bool queue_has_flag(struct queue *queue, enum queue_flags flag)
|
|||
/* Called to find the size of the queue. */
|
||||
static inline unsigned int queue_size(struct queue *queue)
|
||||
{
|
||||
return _q_size(&queue->q_tracks);
|
||||
return g_queue_get_length(&queue->q_tracks._queue);
|
||||
}
|
||||
|
||||
/* Called to access the queued track at a given index. */
|
||||
|
|
Loading…
Reference in New Issue
Block a user