core/queue: Move queue_{set|unset}_flag() out of the queue struct
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
be5d028fcf
commit
13723856fc
|
@ -63,7 +63,7 @@ static void upgrade_v0()
|
|||
|
||||
file_readf(&deck_file, "%d %u", &random, &num);
|
||||
if (random)
|
||||
library->set_flag(Q_RANDOM);
|
||||
queue_set_flag(library, Q_RANDOM);
|
||||
|
||||
for (unsigned int i = 0; i < num; i++) {
|
||||
file_readf(&deck_file, "%u %d", &field, &ascending);
|
||||
|
|
|
@ -157,8 +157,8 @@ void collection :: init(struct queue_ops *ops)
|
|||
library_q.sort(COMPARE_TRACK, false);
|
||||
}
|
||||
|
||||
library_q.set_flag(Q_SAVE_SORT);
|
||||
library_q.set_flag(Q_SAVE_FLAGS);
|
||||
queue_set_flag(&library_q, Q_SAVE_SORT);
|
||||
queue_set_flag(&library_q, Q_SAVE_FLAGS);
|
||||
}
|
||||
|
||||
void collection :: save(struct queue *queue, enum queue_flags flag)
|
||||
|
|
|
@ -77,7 +77,7 @@ void playlist :: init()
|
|||
playlist_q.sort(COMPARE_ARTIST, true);
|
||||
playlist_q.sort(COMPARE_YEAR, false);
|
||||
playlist_q.sort(COMPARE_TRACK, false);
|
||||
playlist_q.set_flag(Q_NO_SORT);
|
||||
queue_set_flag(&playlist_q, Q_NO_SORT);
|
||||
|
||||
index_init(&playlist_db, "playlist.db", true);
|
||||
db_load(&playlist_db);
|
||||
|
|
|
@ -58,16 +58,16 @@ void queue :: read(file &file)
|
|||
}
|
||||
}
|
||||
|
||||
void queue :: set_flag(queue_flags flag)
|
||||
void queue_set_flag(struct queue *queue, enum queue_flags flag)
|
||||
{
|
||||
q_flags |= flag;
|
||||
__queue_save(this, Q_SAVE_FLAGS);
|
||||
queue->q_flags |= flag;
|
||||
__queue_save(queue, Q_SAVE_FLAGS);
|
||||
}
|
||||
|
||||
void queue :: unset_flag(queue_flags flag)
|
||||
void queue_unset_flag(struct queue *queue, enum queue_flags flag)
|
||||
{
|
||||
q_flags &= ~flag;
|
||||
__queue_save(this, Q_SAVE_FLAGS);
|
||||
queue->q_flags &= ~flag;
|
||||
__queue_save(queue, Q_SAVE_FLAGS);
|
||||
}
|
||||
|
||||
static bool track_less_than(struct track *lhs, struct track *rhs,
|
||||
|
|
|
@ -54,17 +54,17 @@ void QueueToolbar :: init(queue *queue, QueueLabel *label,
|
|||
void QueueToolbar :: on_random_toggled()
|
||||
{
|
||||
if (_q_random->get_active())
|
||||
_queue->set_flag(Q_RANDOM);
|
||||
queue_set_flag(_queue, Q_RANDOM);
|
||||
else
|
||||
_queue->unset_flag(Q_RANDOM);
|
||||
queue_unset_flag(_queue, Q_RANDOM);
|
||||
}
|
||||
|
||||
void QueueToolbar :: on_repeat_toggled()
|
||||
{
|
||||
if (_q_repeat->get_active())
|
||||
_queue->set_flag(Q_REPEAT);
|
||||
queue_set_flag(_queue, Q_REPEAT);
|
||||
else
|
||||
_queue->unset_flag(Q_REPEAT);
|
||||
queue_unset_flag(_queue, Q_REPEAT);
|
||||
}
|
||||
|
||||
bool QueueToolbar :: on_search_key_released(GdkEventKey *event)
|
||||
|
@ -84,9 +84,9 @@ void QueueToolbar :: on_switch_toggled()
|
|||
bool active = _q_switch->get_active();
|
||||
|
||||
if (active)
|
||||
_queue->set_flag(Q_ENABLED);
|
||||
queue_set_flag(_queue, Q_ENABLED);
|
||||
else
|
||||
_queue->unset_flag(Q_ENABLED);
|
||||
queue_unset_flag(_queue, Q_ENABLED);
|
||||
|
||||
_q_label->set_sensitive(active);
|
||||
_q_window->set_sensitive(active);
|
||||
|
|
|
@ -112,21 +112,6 @@ struct queue {
|
|||
void read(file &);
|
||||
|
||||
|
||||
/**
|
||||
* Set a queue flag.
|
||||
*
|
||||
* @param flag queue_flag to set.
|
||||
*/
|
||||
virtual void set_flag(queue_flags);
|
||||
|
||||
/**
|
||||
* Clear a queue flag.
|
||||
*
|
||||
* @param flag queue_flag to clear.
|
||||
*/
|
||||
virtual void unset_flag(queue_flags);
|
||||
|
||||
|
||||
/**
|
||||
* Add a track to the queue, possibly matching the
|
||||
* current sort order.
|
||||
|
@ -169,6 +154,12 @@ struct queue {
|
|||
void queue_init(struct queue *, unsigned int, const struct queue_ops *);
|
||||
|
||||
|
||||
/* Called to set a queue flag. */
|
||||
void queue_set_flag(struct queue *, enum queue_flags);
|
||||
|
||||
/* Called to clear a queue flag. */
|
||||
void queue_unset_flag(struct queue *, enum queue_flags);
|
||||
|
||||
/* Called to check if the queue has a specific flag set. */
|
||||
static inline bool queue_has_flag(struct queue *queue, enum queue_flags flag)
|
||||
{
|
||||
|
|
|
@ -126,7 +126,7 @@ void test_track_controls()
|
|||
struct track *track = NULL;
|
||||
|
||||
TestDriver *driver = (TestDriver *)audio :: get_driver();
|
||||
collection :: get_queue()->unset_flag(Q_RANDOM);
|
||||
queue_unset_flag(collection :: get_queue(), Q_RANDOM);
|
||||
|
||||
audio :: pause();
|
||||
audio :: next();
|
||||
|
|
|
@ -117,7 +117,7 @@ static void test_next_prev()
|
|||
queue *q1 = deck :: get(1);
|
||||
|
||||
q0->q_notify = &test_notifier;
|
||||
q0->unset_flag(Q_RANDOM);
|
||||
queue_unset_flag(q0, Q_RANDOM);
|
||||
for (unsigned int i = 0; i < 4; i++)
|
||||
q0->add(track_get(i));
|
||||
|
||||
|
@ -144,14 +144,14 @@ static void test_next_prev()
|
|||
test_equal(deck :: get_queues().size(), (size_t)1);
|
||||
test_equal(deck :: index(q1), (unsigned)0);
|
||||
|
||||
q1->unset_flag(Q_ENABLED);
|
||||
collection :: get_queue()->unset_flag(Q_RANDOM);
|
||||
queue_unset_flag(q1, Q_ENABLED);
|
||||
queue_unset_flag(collection :: get_queue(), Q_RANDOM);
|
||||
|
||||
test_equal(queue_size(q1), (unsigned)5);
|
||||
deck :: next();
|
||||
test_equal(queue_size(q1), (unsigned)5);
|
||||
|
||||
q1->set_flag(Q_ENABLED);
|
||||
queue_set_flag(q1, Q_ENABLED);
|
||||
for (unsigned int i = 0; i < 5; i++)
|
||||
deck :: next();
|
||||
test_equal(deck :: get_queues().size(), (size_t)0);
|
||||
|
|
|
@ -110,19 +110,19 @@ static void test_flags()
|
|||
test_equal(queue_has_flag(&q, Q_SAVE_FLAGS), false);
|
||||
test_equal(queue_has_flag(&q, Q_SAVE_SORT), false);
|
||||
|
||||
q.set_flag(Q_ENABLED);
|
||||
queue_set_flag(&q, Q_ENABLED);
|
||||
test_equal(q.q_flags, Q_ENABLED);
|
||||
test_equal(count_flags, 0);
|
||||
|
||||
q.unset_flag(Q_ENABLED);
|
||||
queue_unset_flag(&q, Q_ENABLED);
|
||||
test_equal(q.q_flags, 0);
|
||||
test_equal(count_flags, 0);
|
||||
|
||||
q.set_flag(Q_SAVE_FLAGS);
|
||||
q.set_flag(Q_ENABLED);
|
||||
q.set_flag(Q_RANDOM);
|
||||
q.set_flag(Q_REPEAT);
|
||||
q.set_flag(Q_NO_SORT);
|
||||
queue_set_flag(&q, Q_SAVE_FLAGS);
|
||||
queue_set_flag(&q, Q_ENABLED);
|
||||
queue_set_flag(&q, Q_RANDOM);
|
||||
queue_set_flag(&q, Q_REPEAT);
|
||||
queue_set_flag(&q, Q_NO_SORT);
|
||||
test_equal(queue_has_flag(&q, Q_ENABLED), true);
|
||||
test_equal(queue_has_flag(&q, Q_RANDOM), true);
|
||||
test_equal(queue_has_flag(&q, Q_REPEAT), true);
|
||||
|
@ -130,10 +130,10 @@ static void test_flags()
|
|||
test_equal(queue_has_flag(&q, Q_SAVE_FLAGS), true);
|
||||
test_equal(count_flags, 5);
|
||||
|
||||
q.unset_flag(Q_ENABLED);
|
||||
q.unset_flag(Q_RANDOM);
|
||||
q.unset_flag(Q_REPEAT);
|
||||
q.unset_flag(Q_NO_SORT);
|
||||
queue_unset_flag(&q, Q_ENABLED);
|
||||
queue_unset_flag(&q, Q_RANDOM);
|
||||
queue_unset_flag(&q, Q_REPEAT);
|
||||
queue_unset_flag(&q, Q_NO_SORT);
|
||||
test_equal(count_flags, 9);
|
||||
}
|
||||
|
||||
|
@ -190,8 +190,8 @@ static void test_stress(unsigned int N)
|
|||
test_equal(queue_size(&q), ex_size);
|
||||
|
||||
/* Tracks should not be removed. */
|
||||
q.set_flag(Q_ENABLED);
|
||||
q.set_flag(Q_REPEAT);
|
||||
queue_set_flag(&q, Q_ENABLED);
|
||||
queue_set_flag(&q, Q_REPEAT);
|
||||
for (i = 0; i < ex_size; i++) {
|
||||
test_loop_equal(queue_next(&q), track_get((i % 11) + 2), i);
|
||||
queue_selected(&q, i);
|
||||
|
@ -199,7 +199,7 @@ static void test_stress(unsigned int N)
|
|||
} test_loop_passed();
|
||||
|
||||
/* Tracks should be removed. */
|
||||
q.unset_flag(Q_REPEAT);
|
||||
queue_unset_flag(&q, Q_REPEAT);
|
||||
for (i = 0; i < ex_size; i++) {
|
||||
test_loop_equal(queue_next(&q), track_get((i % 11) + 2), i);
|
||||
test_loop_equal(queue_size(&q), ex_size - (i + 1), i);
|
||||
|
@ -310,7 +310,7 @@ static void test_sorting()
|
|||
} test_loop_passed();
|
||||
test_equal(count_sort, 1);
|
||||
|
||||
q.set_flag(Q_NO_SORT);
|
||||
queue_set_flag(&q, Q_NO_SORT);
|
||||
q.sort(COMPARE_TITLE, true);
|
||||
for (i = 0; i < 13; i++) {
|
||||
track = queue_at(&q, i);
|
||||
|
@ -318,7 +318,7 @@ static void test_sorting()
|
|||
test_loop_equal(track->tr_dbe.dbe_index, ex_count[i], i);
|
||||
} test_loop_passed();
|
||||
|
||||
q.unset_flag(Q_NO_SORT);
|
||||
queue_unset_flag(&q, Q_NO_SORT);
|
||||
q.sort(COMPARE_TITLE, true);
|
||||
for (i = 0; i < 13; i++) {
|
||||
track = queue_at(&q, i);
|
||||
|
@ -337,7 +337,7 @@ static void test_sorting()
|
|||
} test_loop_passed();
|
||||
test_equal(count_sort, 5);
|
||||
|
||||
q.unset_flag(Q_SAVE_SORT);
|
||||
queue_unset_flag(&q, Q_SAVE_SORT);
|
||||
q.sort(COMPARE_ARTIST, true);
|
||||
q.sort(COMPARE_ALBUM, false);
|
||||
q.sort(COMPARE_TRACK, false);
|
||||
|
|
Loading…
Reference in New Issue