diff --git a/core/deck.cpp b/core/deck.cpp index ed806c7d..4b566353 100644 --- a/core/deck.cpp +++ b/core/deck.cpp @@ -106,6 +106,20 @@ void tempq_free(struct queue *queue) return; } +struct queue *tempq_get(unsigned int index) +{ + std::list::iterator it; + unsigned int i; + + it = queue_deck.begin(); + for (i = 0; i < queue_deck.size(); i++) { + if (i == index) + return &(*it); + it++; + } + return NULL; +} + void deck :: write() { std::list::iterator it; @@ -148,18 +162,6 @@ void deck :: move(queue *queue, unsigned int index) write(); } -queue *deck :: get(unsigned int index) -{ - std::list::iterator it; - - for (it = queue_deck.begin(); it != queue_deck.end(); it++) { - if (index == 0) - return &(*it); - index--; - } - return NULL; -} - struct track *deck :: next() { struct track *track = NULL; diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 354ff5d1..79436b3b 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -217,7 +217,7 @@ bool Tab :: tab_add_to_queue(unsigned int n) if (n >= deck :: get_queues().size()) return true; - queue *pq = deck :: get(n); + queue *pq = tempq_get(n); tab_queue_add(pq); return true; } @@ -464,7 +464,7 @@ void post_init_tabs() unsigned int tab = 0; for (tab = 0; tab < deck::get_queues().size(); tab++) { - if (queue_has_flag(deck :: get(tab), Q_ENABLED)) + if (queue_has_flag(tempq_get(tab), Q_ENABLED)) break; } gui :: get_widget("o_notebook")->set_current_page(tab); diff --git a/include/core/deck.h b/include/core/deck.h index 3d69a793..751ca638 100644 --- a/include/core/deck.h +++ b/include/core/deck.h @@ -54,14 +54,6 @@ namespace deck */ void move(queue *, unsigned int); - /** - * Access the queue at the specified index. - * - * @param index The index of the queue that should be accessed. - * @return The queue at the requested index. - */ - queue *get(unsigned int); - /** * @return A track from the first enabled queue. If no queues are * enabled, return a track from the Library. @@ -86,4 +78,7 @@ struct queue *tempq_alloc(struct queue_ops *, unsigned int); /* Called to free a temporary queue. */ void tempq_free(struct queue *); +/* Called to find a temporary queue by index. */ +struct queue *tempq_get(unsigned int); + #endif /* OCARINA_CORE_DECK_H */ diff --git a/tests/core/deck.cpp b/tests/core/deck.cpp index e6773a33..8ab7e092 100644 --- a/tests/core/deck.cpp +++ b/tests/core/deck.cpp @@ -25,7 +25,7 @@ static void test_init() test_equal(deck :: next(), NULL); tempq_init(NULL); test_equal(deck :: next(), NULL); - test_equal(deck :: get(0), NULL); + test_equal(tempq_get(0), NULL); test_equal(deck :: get_queues().size(), (size_t)0); } @@ -39,6 +39,7 @@ static void test_tempq() test_equal(queue_has_flag(q0, Q_RANDOM), false); test_equal(queue_has_flag(q0, Q_SAVE_SORT), true); test_equal(queue_has_flag(q0, Q_SAVE_FLAGS), true); + test_equal(tempq_get(0), q0); q1 = tempq_alloc(NULL, Q_RANDOM); test_not_equal(q1, NULL); @@ -46,9 +47,14 @@ static void test_tempq() test_equal(queue_has_flag(q1, Q_RANDOM), true); test_equal(queue_has_flag(q1, Q_SAVE_SORT), true); test_equal(queue_has_flag(q1, Q_SAVE_FLAGS), true); + test_equal(tempq_get(1), q1); tempq_free(q0); + test_equal(tempq_get(0), q1); + tempq_free(q1); + test_equal(tempq_get(0), NULL); + history_deinit(); collection_deinit(); playlist_deinit(); @@ -72,13 +78,13 @@ static void test_create_mv_destroy() test_not_equal(q1, Q_NULL); test_equal(queue_has_flag(q1, Q_ENABLED), true); test_equal(queue_has_flag(q1, Q_RANDOM), true); - test_equal(deck :: get(2), q1); + test_equal(tempq_get(2), q1); q2 = tempq_alloc(NULL, 0); test_not_equal(q2, Q_NULL); test_equal(queue_has_flag(q2, Q_ENABLED), true); test_equal(queue_has_flag(q2, Q_RANDOM), false); - test_equal(deck :: get(3), q2); + test_equal(tempq_get(3), q2); deck :: move(q1, 3); deck :: move(q1, 3); @@ -87,15 +93,15 @@ static void test_create_mv_destroy() tempq_free(q1); tempq_free(q2); - test_equal(deck :: get(3), Q_NULL); + test_equal(tempq_get(3), Q_NULL); } static void test_next_prev() { std::list::iterator it = deck :: get_queues().begin(); queue *q = history_get_queue(); - queue *q0 = deck :: get(0); - queue *q1 = deck :: get(1); + queue *q0 = tempq_get(0); + queue *q1 = tempq_get(1); queue_unset_flag(q0, Q_RANDOM); for (unsigned int i = 0; i < 4; i++)