static void impl_get_entries (RBMediaPlayerSource *source, const char *category, GHashTable *map) { RhythmDBQueryModel *model; GtkTreeIter iter; gboolean podcast; /* we don't have anything else to distinguish podcasts from regular * tracks, so just use the genre. */ podcast = (g_str_equal (category, SYNC_CATEGORY_PODCAST)); g_object_get (source, "base-query-model", &model, NULL); if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter) == FALSE) { g_object_unref (model); return; } do { RhythmDBEntry *entry; const char *genre; entry = rhythmdb_query_model_iter_to_entry (model, &iter); genre = rhythmdb_entry_get_string (entry, RHYTHMDB_PROP_GENRE); if (g_str_equal (genre, "Podcast") == podcast) { _rb_media_player_source_add_to_map (map, entry); } } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (model), &iter)); g_object_unref (model); }
static void impl_get_entries (RBMediaPlayerSource *source, const char *category, GHashTable *map) { RBMtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (source); GHashTableIter iter; gpointer key, value; gboolean podcast; /* sync category mapping is a bit hackish here, as MTP doesn't categorise * tracks itself. matching specific genres is about the best we can do. */ podcast = (g_str_equal (category, SYNC_CATEGORY_PODCAST)); g_hash_table_iter_init (&iter, priv->entry_map); while (g_hash_table_iter_next (&iter, &key, &value)) { LIBMTP_track_t *track = value; if ((g_strcmp0 (track->genre, "Podcast") == 0) == podcast) { RhythmDBEntry *entry = key; _rb_media_player_source_add_to_map (map, entry); } } }