queue: Update the track_selected code
I also put in other fixes to the unit test to make test_equal work. Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
9a5caa29b3
commit
869d67558e
|
@ -59,9 +59,8 @@ public:
|
||||||
const std::string length_str();
|
const std::string length_str();
|
||||||
|
|
||||||
void sort(sort_t, bool);
|
void sort(sort_t, bool);
|
||||||
|
|
||||||
Track *operator[](unsigned int);
|
Track *operator[](unsigned int);
|
||||||
void path_selected(unsigned int);
|
void track_selected(unsigned int);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* OCARINA_QUEUE_H */
|
#endif /* OCARINA_QUEUE_H */
|
||||||
|
|
|
@ -246,18 +246,15 @@ void Queue :: sort(sort_t field, bool reset)
|
||||||
get_callbacks()->on_queue_changed();
|
get_callbacks()->on_queue_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Track *Queue :: operator[](unsigned int i)
|
Track *Queue :: operator[](unsigned int i)
|
||||||
{
|
{
|
||||||
return _tracks[i];
|
return _tracks[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
void Queue :: path_selected(unsigned int id)
|
void Queue :: track_selected(unsigned int id)
|
||||||
{
|
{
|
||||||
_cur = id;
|
_cur = id;
|
||||||
if (!(_flags &Q_REPEAT)) {
|
if (has_flag(Q_REPEAT) == false) {
|
||||||
del(_cur);
|
del(_cur);
|
||||||
_cur--;
|
_cur--;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,42 +34,42 @@ void test_default()
|
||||||
{
|
{
|
||||||
TestQueue q;
|
TestQueue q;
|
||||||
|
|
||||||
test :: equal(q.get_cur(), (unsigned)-1);
|
test_equal(q.get_cur(), (unsigned)-1);
|
||||||
test :: equal(q.get_flags(), (unsigned)0);
|
test_equal(q.get_flags(), (unsigned)0);
|
||||||
test :: equal(q.get_length(), (unsigned)0);
|
test_equal(q.get_length(), (unsigned)0);
|
||||||
test :: equal(q.get_sorder().size(), (size_t)0);
|
test_equal(q.get_sorder().size(), (size_t)0);
|
||||||
test :: equal(q.next(), (Track *)NULL);
|
test_equal(q.next(), (Track *)NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_constructor(unsigned int flags)
|
void test_constructor(unsigned int flags)
|
||||||
{
|
{
|
||||||
TestQueue q(flags | (1 << 30));
|
TestQueue q(flags | (1 << 30));
|
||||||
|
|
||||||
test :: equal(q.get_cur(), (unsigned)-1);
|
test_equal(q.get_cur(), (unsigned)-1);
|
||||||
test :: equal(q.get_flags(), flags);
|
test_equal(q.get_flags(), flags);
|
||||||
test :: equal(q.get_length(), (unsigned)0);
|
test_equal(q.get_length(), (unsigned)0);
|
||||||
test :: equal(q.get_sorder().size(), (size_t)0);
|
test_equal(q.get_sorder().size(), (size_t)0);
|
||||||
test :: equal(q.next(), (Track *)NULL);
|
test_equal(q.next(), (Track *)NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_flags()
|
void test_flags()
|
||||||
{
|
{
|
||||||
TestQueue q(0);
|
TestQueue q(0);
|
||||||
|
|
||||||
test :: equal(q.get_flags(), (unsigned)0);
|
test_equal(q.get_flags(), (unsigned)0);
|
||||||
|
|
||||||
q.set_flag(Q_ENABLED);
|
q.set_flag(Q_ENABLED);
|
||||||
test :: equal(q.get_flags(), (unsigned)Q_ENABLED);
|
test_equal(q.get_flags(), (unsigned)Q_ENABLED);
|
||||||
|
|
||||||
q.unset_flag(Q_ENABLED);
|
q.unset_flag(Q_ENABLED);
|
||||||
test :: equal(q.get_flags(), (unsigned)0);
|
test_equal(q.get_flags(), (unsigned)0);
|
||||||
|
|
||||||
q.set_flag(Q_REPEAT);
|
q.set_flag(Q_REPEAT);
|
||||||
q.set_flag(Q_RANDOM);
|
q.set_flag(Q_RANDOM);
|
||||||
test :: equal(q.has_flag(Q_ENABLED), false);
|
test_equal(q.has_flag(Q_ENABLED), false);
|
||||||
test :: equal(q.has_flag(Q_RANDOM), true);
|
test_equal(q.has_flag(Q_RANDOM), true);
|
||||||
test :: equal(q.has_flag(Q_REPEAT), true);
|
test_equal(q.has_flag(Q_REPEAT), true);
|
||||||
test :: equal(q.has_flag(Q_NO_SORT), false);
|
test_equal(q.has_flag(Q_NO_SORT), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_add_cb(Queue *q, unsigned int id)
|
void test_add_cb(Queue *q, unsigned int id)
|
||||||
|
@ -250,9 +250,9 @@ void test_next()
|
||||||
check_equal(track->id, i);
|
check_equal(track->id, i);
|
||||||
}
|
}
|
||||||
test :: success();
|
test :: success();
|
||||||
test :: equal(q.size(), (unsigned)0);
|
test_equal(q.size(), (unsigned)0);
|
||||||
test :: equal(q.length_str(), (std::string)"");
|
test_equal(q.length_str(), (std::string)"");
|
||||||
test :: equal(q.next(), TRACK_NULL);
|
test_equal(q.next(), TRACK_NULL);
|
||||||
|
|
||||||
|
|
||||||
q.set_flag(Q_RANDOM);
|
q.set_flag(Q_RANDOM);
|
||||||
|
@ -266,9 +266,9 @@ void test_next()
|
||||||
check_equal(track->id, expected_rand[i]);
|
check_equal(track->id, expected_rand[i]);
|
||||||
}
|
}
|
||||||
test :: success();
|
test :: success();
|
||||||
test :: equal(q.size(), (unsigned)0);
|
test_equal(q.size(), (unsigned)0);
|
||||||
test :: equal(q.length_str(), (std::string)"");
|
test_equal(q.length_str(), (std::string)"");
|
||||||
test :: equal(q.next(), TRACK_NULL);
|
test_equal(q.next(), TRACK_NULL);
|
||||||
|
|
||||||
|
|
||||||
q.set_flag(Q_REPEAT);
|
q.set_flag(Q_REPEAT);
|
||||||
|
@ -281,7 +281,23 @@ void test_next()
|
||||||
check_equal(track->id, i % 24);
|
check_equal(track->id, i % 24);
|
||||||
}
|
}
|
||||||
test :: success();
|
test :: success();
|
||||||
test :: equal(q.size(), (unsigned)24);
|
test_equal(q.size(), (unsigned)24);
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_select()
|
||||||
|
{
|
||||||
|
TestQueue q(0);
|
||||||
|
test_fill_q(&q);
|
||||||
|
|
||||||
|
test_equal(q.size(), (unsigned)24);
|
||||||
|
q.track_selected(10);
|
||||||
|
test_equal(q.size(), (unsigned)23);
|
||||||
|
test_equal(q.next()->id, (unsigned)11);
|
||||||
|
|
||||||
|
q.set_flag(Q_REPEAT);
|
||||||
|
q.track_selected(0);
|
||||||
|
test_equal(q.size(), (unsigned)22);
|
||||||
|
test_equal(q.next()->id, (unsigned)1);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int exp_sort_title[] = { 1, 18, 19, 16, 20, 8, 2, 9, 23, 10, 17, 11,
|
unsigned int exp_sort_title[] = { 1, 18, 19, 16, 20, 8, 2, 9, 23, 10, 17, 11,
|
||||||
|
@ -335,6 +351,7 @@ int main(int argc, char **argv)
|
||||||
run_test("Queue Add and Remove Test", test_add_remove);
|
run_test("Queue Add and Remove Test", test_add_remove);
|
||||||
run_test("Queue Track Updated Test", test_updated);
|
run_test("Queue Track Updated Test", test_updated);
|
||||||
run_test("Queue Pick Next Test", test_next);
|
run_test("Queue Pick Next Test", test_next);
|
||||||
|
run_test("Queue Select Track Test", test_select);
|
||||||
run_test("Queue Sorting Test", test_sorting);
|
run_test("Queue Sorting Test", test_sorting);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ namespace test
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
void equal(const T &lhs, const T &rhs, unsigned int line = 0)
|
void equal(const T &lhs, const T &rhs, unsigned int line)
|
||||||
{
|
{
|
||||||
begin();
|
begin();
|
||||||
check_equal(lhs, rhs, line);
|
check_equal(lhs, rhs, line);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user