/* * Copyright 2013 (c) Anna Schumaker. */ #include #include #include #include void test_add_playlist(unsigned int size) { Playqueue *pqueue = deck :: create(false); for (unsigned i = 0; i < size; i++) pqueue->add(i); } /* Test creating a deck of playlists */ void test_0() { for (unsigned int i = 0; i < 10; i++) test_add_playlist(10 + i); print("Test 0:\n"); deck :: print_info(); print("\n"); } /* Test removing playlists from the deck */ void test_1() { print("Test 1:\n"); deck :: remove(3); deck :: remove(7); deck :: remove(1); deck :: remove(5); deck :: print_info(); print("\n"); } /* Get a specific playlist from the deck */ void test_2() { Playqueue *pqueue; print("Test 2: "); pqueue = deck :: get(3); print("Playqueue { size = %u, flags = %u }", pqueue->size(), pqueue->get_flags()); print("\n\n"); } /* Move a playlist to a new position in the deck */ void test_3() { print("Test 3:\n"); deck :: move(4, 0); deck :: print_info(); print("\n"); deck :: move(5, 1); deck :: print_info(); print("\n"); deck :: move(2, 5); deck :: print_info(); print("\n"); deck :: move(3, 4); deck :: print_info(); print("\n"); deck :: move(4, 3); deck :: print_info(); print("\n"); deck :: move(4, 4); deck :: print_info(); print("\n"); } /* Test the next() function for playlists */ void test_4() { print("Test 4:\n"); deck :: get(0)->unset_flag(PQ_ENABLED); deck :: get(1)->unset_flag(PQ_ENABLED); deck :: get(4)->unset_flag(PQ_ENABLED); for (unsigned int i = 0; i < 40; i++) { print("Playing id: %u\n", deck :: next()); if (i == 11 || i == 25) deck :: print_info(); } deck :: print_info(); print("\n"); } /* Test load / save functions */ void test_5() { print("Test 5:\n"); deck :: get(1)->set_flag(PQ_ENABLED); deck :: get(2)->set_flag(PQ_ENABLED); deck :: get(2)->set_flag(PQ_RANDOM); print("Saving playqueue deck\n"); deck :: write(); print("Clearing deck\n"); deck :: reset(); deck :: print_info(); print("Reading back playqueue deck\n"); deck :: init(); deck :: print_info(); } int main(int argc, char **argv) { library :: init(); deck :: init(); library :: reset(); library :: add_path("/tmp/library/0"); while (idle :: run_task()); print("Library size: %u\n", deck :: get_library_pq()->size()); test_0(); test_1(); test_2(); test_3(); test_4(); test_5(); print("Disabling library path\n"); library :: set_enabled(0, false); print("Library size: %u\n", deck :: get_library_pq()->size()); print("Enabling library path\n"); library :: set_enabled(0, true); print("Library size: %u\n", deck :: get_library_pq()->size()); print("Deleting library path\n"); library :: del_path(0); while (idle :: run_task()); print("Library size: %u\n", deck :: get_library_pq()->size()); return 0; }