diff --git a/gui/audio.c b/gui/audio.c index 126ca662..a3d769c7 100644 --- a/gui/audio.c +++ b/gui/audio.c @@ -82,10 +82,10 @@ void __audio_favorite(GtkToggleButton *toggle, gpointer data) void __audio_hide(GtkToggleButton *toggle, gpointer data) { if (gtk_toggle_button_get_active(toggle)) { - if (collection_ban(audio_cur_track())) + if (playlist_add("Hidden", audio_cur_track())) audio_next(); } else - collection_unban(audio_cur_track()); + playlist_remove("Hidden", audio_cur_track()); } static int __audio_timeout(gpointer data) diff --git a/gui/collection.c b/gui/collection.c index 92b6eba6..66e9b3e3 100644 --- a/gui/collection.c +++ b/gui/collection.c @@ -169,27 +169,6 @@ void __collection_selection_changed(GtkTreeSelection *selection, } } -static void *__collection_init(struct queue *queue, void *data) -{ - return gui_queue_alloc(queue, "Collection", GQ_CAN_RANDOM); -} - -static void __collection_added(struct queue *queue, unsigned int pos) -{ - gui_queue_added(queue, pos); - gui_sidebar_set_size(gui_queue(queue)); -} - -static bool __collection_erase(struct queue *queue, struct track *track) -{ - return playlist_add("Hidden", track); -} - -static void __collection_removed(struct queue *queue, unsigned int pos) -{ - gui_queue_removed(queue, pos); - gui_sidebar_set_size(gui_queue(queue)); -} bool __gui_collection_init_idle() { @@ -233,17 +212,5 @@ void gui_collection_init() gui_sidebar_on_select, NULL, NULL); idle_schedule(IDLE_SYNC, __gui_collection_init_idle, NULL); - gui_sidebar_set_size(gui_queue(collection_get_queue())); gui_idle_enable(); } - -struct queue_ops collection_ops = { - .qop_init = __collection_init, - .qop_deinit = gui_queue_free, - .qop_added = __collection_added, - .qop_erase = __collection_erase, - .qop_removed = __collection_removed, - .qop_cleared = gui_queue_cleared, - .qop_save = collection_save, - .qop_updated = gui_queue_updated, -}; diff --git a/gui/ocarina.c b/gui/ocarina.c index 6e7b3bad..23fc00b6 100644 --- a/gui/ocarina.c +++ b/gui/ocarina.c @@ -23,7 +23,7 @@ const static gchar *OCARINA_NAME = "org.gtk.ocarina-debug"; #endif struct core_init_data init_data = { - &collection_ops, + NULL, &history_ops, &playlist_ops, &tempq_ops, diff --git a/gui/sidebar.c b/gui/sidebar.c index 6b8b77b7..04dee4fe 100644 --- a/gui/sidebar.c +++ b/gui/sidebar.c @@ -124,9 +124,6 @@ void gui_sidebar_init() sb_store = GTK_LIST_STORE(gui_builder_object("o_sidebar_store")); gtk_tree_model_get_iter_first(GTK_TREE_MODEL(sb_store), &iter); - __sidebar_set_queue(&iter, gui_queue(collection_get_queue())); - - gtk_tree_model_iter_next(GTK_TREE_MODEL(sb_store), &iter); __sidebar_set_queue(&iter, gui_queue(history_get_queue())); /* Set sidebar width. */ diff --git a/gui/view.c b/gui/view.c index 11c4334f..2607a8d4 100644 --- a/gui/view.c +++ b/gui/view.c @@ -286,7 +286,7 @@ void __view_rc_add_hidden(GtkMenuItem *item, gpointer data) GList *cur = g_list_reverse(rows); while (cur) { - collection_ban(__view_filter_get_track(cur->data)); + playlist_add("Hidden", __view_filter_get_track(cur->data)); cur = g_list_next(cur); } diff --git a/include/gui/collection.h b/include/gui/collection.h index 05760ed5..8f92d948 100644 --- a/include/gui/collection.h +++ b/include/gui/collection.h @@ -7,7 +7,4 @@ /* Called to initialize the GUI collection code. */ void gui_collection_init(); -/* Collection operations passed to core_init() */ -extern struct queue_ops collection_ops; - #endif /* OCARINA_GUI_COLLECTION_H */ diff --git a/share/ocarina/ocarina6.glade b/share/ocarina/ocarina6.glade index 2b7362e6..289f0ae4 100644 --- a/share/ocarina/ocarina6.glade +++ b/share/ocarina/ocarina6.glade @@ -275,12 +275,6 @@ - - media-optical - menu - <big>Collection</big> -0 tracks - document-open-recent menu diff --git a/tests/gui/model.c b/tests/gui/model.c index dffc0b21..4aed59e3 100644 --- a/tests/gui/model.c +++ b/tests/gui/model.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -21,10 +22,15 @@ void on_row_changed(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { count_update++; } -void *test_queue_init(struct queue *queue, void *data) { return NULL; } -void test_queue_deinit(struct queue *queue) {} +void *test_queue_init(struct queue *queue, void *data) + { return NULL; } +void test_queue_deinit(struct queue *queue) + { } void test_queue_added(struct queue *queue, unsigned int row) - { gui_queue_model_add(queue->q_private, row); } +{ + if (queue->q_private) + gui_queue_model_add(queue->q_private, row); +} void test_queue_removed(struct queue *queue, unsigned int row) { gui_queue_model_remove(queue->q_private, row); } void test_queue_cleared(struct queue *queue, unsigned int n) @@ -53,7 +59,7 @@ struct audio_ops test_audio_ops = { }; struct core_init_data init_data = { - .collection_ops = &test_ops, + .playlist_ops = &test_ops, .audio_ops = &test_audio_ops, }; @@ -63,10 +69,10 @@ static void test_init() GuiQueueModel *model; GType type; - model = gui_queue_model_new(collection_get_queue()); + model = gui_queue_model_new(playlist_get_queue("Collection")); test_not_equal((void *)model, NULL); test_equal(GTK_IS_TREE_MODEL(model), true); - test_equal((void *)model->gqm_queue, (void *)collection_get_queue()); + test_equal((void *)model->gqm_queue, (void *)playlist_get_queue("Collection")); treemodel = GTK_TREE_MODEL(model); test_equal(gtk_tree_model_get_flags(treemodel), GTK_TREE_MODEL_LIST_ONLY); @@ -109,7 +115,7 @@ static void test_empty() GtkTreeIter iter; GValue value; - model = GTK_TREE_MODEL(gui_queue_model_new(collection_get_queue())); + model = GTK_TREE_MODEL(gui_queue_model_new(playlist_get_queue("Collection"))); memset(&value, 0, sizeof(GValue)); test_equal(gtk_tree_model_get_iter_first(model, &iter), false); @@ -154,6 +160,7 @@ static void test_empty() static void test_model() { + struct db_entry *dbe, *next; struct track *track; GtkTreeModel *model; GtkTreePath *path; @@ -161,7 +168,10 @@ static void test_model() GValue value; int argc = 0; - model = GTK_TREE_MODEL(gui_queue_model_new(collection_get_queue())); + core_init(&argc, NULL, &init_data); + while (idle_run_task() == true) {} + + model = GTK_TREE_MODEL(gui_queue_model_new(playlist_get_queue("Collection"))); memset(&value, 0, sizeof(GValue)); g_signal_connect(model, "row-inserted", (GCallback)on_row_inserted, NULL); @@ -169,13 +179,12 @@ static void test_model() g_signal_connect(model, "row-changed", (GCallback)on_row_changed, NULL); /* Okay, now scan a directory ... */ - core_init(&argc, NULL, &init_data); - collection_get_queue()->q_private = model; + playlist_get_queue("Collection")->q_private = model; collection_add("tests/Music/Hyrule Symphony"); while (idle_run_task() == true) {} - test_equal(queue_size(collection_get_queue()), 13); + test_equal(playlist_size("Collection"), 13); test_equal(count_insert, 13); - queue_resort(collection_get_queue()); + queue_resort(playlist_get_queue("Collection")); test_equal(count_update, 13); /* ... and test again */ @@ -247,8 +256,8 @@ static void test_model() test_equal(gtk_tree_model_iter_parent(model, &iter, &iter), false); - while (queue_size(collection_get_queue()) > 0) - queue_remove(collection_get_queue(), 0); + db_for_each(dbe, next, track_db_get()) + playlist_remove("Collection", TRACK(dbe)); test_equal(count_delete, 13); core_deinit(); diff --git a/tests/gui/queue.c b/tests/gui/queue.c index 13d7e958..152532d7 100644 --- a/tests/gui/queue.c +++ b/tests/gui/queue.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -34,7 +35,7 @@ static struct queue_ops test_ops = { }; struct core_init_data init_data = { - .collection_ops = &test_ops, + .playlist_ops = &test_ops, }; static void test_queue() @@ -151,6 +152,7 @@ static void test_queue() static void test_tracks() { + struct db_entry *dbe, *next; struct gui_queue *gq; GtkLabel *runtime; GtkEntry *search; @@ -160,7 +162,7 @@ static void test_tracks() search = GTK_ENTRY(gui_builder_widget("o_search")); core_init(&argc, NULL, &init_data); - gq = gui_queue(collection_get_queue()); + gq = gui_queue(playlist_get_queue("Collection")); gui_queue_show(gq); test_equal(gtk_label_get_text(runtime), ""); @@ -181,7 +183,13 @@ static void test_tracks() g_signal_emit_by_name(search, "search-changed"); test_equal(gtk_tree_model_iter_n_children(gq->gq_filter, NULL), 13); - queue_remove(collection_get_queue(), 3); + db_for_each(dbe, next, track_db_get()) { + if (TRACK(dbe)->tr_track == 4) { + playlist_remove("Collection", TRACK(dbe)); + break; + } + } + test_equal(gtk_tree_model_iter_n_children(gq->gq_filter, NULL), 12); test_equal(gtk_label_get_text(runtime), "40 minutes, 35 seconds"); diff --git a/tests/gui/sidebar.c b/tests/gui/sidebar.c index c6229bdc..8290697c 100644 --- a/tests/gui/sidebar.c +++ b/tests/gui/sidebar.c @@ -47,10 +47,6 @@ static void test_treeview() test_equal(gtk_tree_model_get_iter_first(model, &iter), true); gtk_tree_model_get(model, &iter, 3, &queue, -1); - test_equal((void *)queue, (void *)gui_queue(collection_get_queue())); - - test_equal(gtk_tree_model_iter_next(model, &iter), true); - gtk_tree_model_get(model, &iter, 3, &queue, -1); test_equal((void *)queue, (void *)gui_queue(history_get_queue())); test_equal(gtk_tree_model_iter_next(model, &iter), false);