core/queue: Trigger an update when tracks are selected
This will let us turn tracks bold as they are selected. Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
1ad112e217
commit
b2a61a60f3
|
@ -86,12 +86,14 @@ static inline void __queue_updated(struct queue *queue, unsigned int pos)
|
||||||
queue->q_ops->qop_updated(queue, pos);
|
queue->q_ops->qop_updated(queue, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct track *__queue_selected(struct queue *queue)
|
static inline struct track *__queue_selected(struct queue *queue, unsigned int pos)
|
||||||
{
|
{
|
||||||
struct track *track = (struct track *)_q_iter_val(&queue->q_cur);
|
struct track *track = (struct track *)_q_iter_val(&queue->q_cur);
|
||||||
|
|
||||||
if (queue_has_flag(queue, Q_REPEAT) == false)
|
if (queue_has_flag(queue, Q_REPEAT) == false)
|
||||||
__queue_remove(queue, &queue->q_cur);
|
__queue_remove(queue, &queue->q_cur);
|
||||||
|
else
|
||||||
|
__queue_updated(queue, pos);
|
||||||
return track;
|
return track;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,7 +207,7 @@ struct track *queue_selected(struct queue *queue, unsigned int index)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (queue->q_cur.it_pos != index)
|
if (queue->q_cur.it_pos != index)
|
||||||
_q_iter_set(&queue->q_tracks, &queue->q_cur, index);
|
_q_iter_set(&queue->q_tracks, &queue->q_cur, index);
|
||||||
return __queue_selected(queue);
|
return __queue_selected(queue, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct track *queue_next(struct queue *queue)
|
struct track *queue_next(struct queue *queue)
|
||||||
|
@ -229,7 +231,7 @@ struct track *queue_next(struct queue *queue)
|
||||||
_q_iter_set(&queue->q_tracks, &queue->q_cur, 0);
|
_q_iter_set(&queue->q_tracks, &queue->q_cur, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return __queue_selected(queue);
|
return __queue_selected(queue, queue->q_cur.it_pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void queue_resort(struct queue *queue)
|
void queue_resort(struct queue *queue)
|
||||||
|
|
|
@ -260,7 +260,9 @@ static void test_stress(unsigned int N)
|
||||||
for (i = 0; i < ex_size; i++) {
|
for (i = 0; i < ex_size; i++) {
|
||||||
test_loop_equal((void *)queue_next(&q),
|
test_loop_equal((void *)queue_next(&q),
|
||||||
(void *)track_get((i % 11) + 2), i);
|
(void *)track_get((i % 11) + 2), i);
|
||||||
|
test_loop_equal(count_updated, (N / 13) + (2 * i) + 1, i);
|
||||||
queue_selected(&q, i);
|
queue_selected(&q, i);
|
||||||
|
test_loop_equal(count_updated, (N / 13) + (2 * i) + 2, i);
|
||||||
test_loop_equal(queue_size(&q), ex_size, i);
|
test_loop_equal(queue_size(&q), ex_size, i);
|
||||||
} test_loop_passed();
|
} test_loop_passed();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue