static void rb_static_playlist_source_add_id_list (RBStaticPlaylistSource *source, GList *list) { RBPlaylistSource *psource = RB_PLAYLIST_SOURCE (source); GList *i; gint id; g_return_if_fail (list != NULL); for (i = list; i != NULL; i = i->next) { RhythmDBEntry *entry; id = strtoul ((const char *)i->data, NULL, 0); if (id == 0) continue; entry = rhythmdb_entry_lookup_by_id (rb_playlist_source_get_db (psource), id); if (entry == NULL) { rb_debug ("received id %d, but can't find the entry", id); continue; } rb_static_playlist_source_add_entry (source, entry, -1); } }
static void impl_add_playlist (RBMediaPlayerSource *source, char *name, GList *entries) { RBSource *playlist; RhythmDBEntryType *entry_type; RBShell *shell; GList *i; g_object_get (source, "shell", &shell, "entry-type", &entry_type, NULL); playlist = rb_generic_player_playlist_source_new (shell, RB_GENERIC_PLAYER_SOURCE (source), NULL, NULL, entry_type); g_object_unref (entry_type); rb_generic_player_source_add_playlist (RB_GENERIC_PLAYER_SOURCE (source), shell, playlist); g_object_set (playlist, "name", name, NULL); for (i = entries; i != NULL; i = i->next) { rb_static_playlist_source_add_entry (RB_STATIC_PLAYLIST_SOURCE (playlist), i->data, -1); } g_object_unref (shell); }
static void impl_paste (RBSource *asource, GList *entries) { RBStaticPlaylistSource *source = RB_STATIC_PLAYLIST_SOURCE (asource); for (; entries; entries = g_list_next (entries)) rb_static_playlist_source_add_entry (source, entries->data, -1); }
static RBTrackTransferBatch * impl_paste (RBSource *asource, GList *entries) { RBStaticPlaylistSource *source = RB_STATIC_PLAYLIST_SOURCE (asource); for (; entries; entries = g_list_next (entries)) rb_static_playlist_source_add_entry (source, entries->data, -1); return NULL; }
static void rb_static_playlist_source_row_inserted (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, RBStaticPlaylistSource *source) { RhythmDBEntry *entry; gtk_tree_model_get (model, iter, 0, &entry, -1); rb_static_playlist_source_add_entry (source, entry, -1); rhythmdb_entry_unref (entry); }
static void default_add_to_queue (RBSource *source, RBSource *queue) { RBEntryView *songs = rb_source_get_entry_view (source); GList *selection = rb_entry_view_get_selected_entries (songs); GList *iter; if (selection == NULL) return; for (iter = selection; iter; iter = iter->next) { rb_static_playlist_source_add_entry (RB_STATIC_PLAYLIST_SOURCE (queue), (RhythmDBEntry *)iter->data, -1); } g_list_foreach (selection, (GFunc)rhythmdb_entry_unref, NULL); g_list_free (selection); }