static void magnatune_browse_root(OperationSpec *os) { GrlMedia *media = NULL; guint num = 0; gchar *id = NULL; GRL_DEBUG("magnatune_browse_root"); if (os->skip > 1 || os->count == 0) { os->callback(os->source, os->operation_id, NULL, 0, os->user_data, NULL); return; } num = (os->count > MAGNATUNE_NUM_CAT) ? MAGNATUNE_NUM_CAT: os->count; media = grl_media_container_new(); grl_media_set_title(media, MAGNATUNE_ROOT_ARTIST); id = g_strdup_printf("root-%d", MAGNATUNE_ARTIST_CAT); grl_media_set_id(media, id); num--; os->callback(os->source, os->operation_id, media, num, os->user_data, NULL); g_free(id); if (num == 0) return; media = grl_media_container_new(); grl_media_set_title(media, MAGNATUNE_ROOT_ALBUM); id = g_strdup_printf("root-%d", MAGNATUNE_ALBUM_CAT); grl_media_set_id(media, id); num--; os->callback(os->source, os->operation_id, media, num, os->user_data, NULL); g_free(id); if (num == 0) return; media = grl_media_container_new(); grl_media_set_title(media, MAGNATUNE_ROOT_GENRE); id = g_strdup_printf("root-%d", MAGNATUNE_GENRE_CAT); grl_media_set_id(media, id); num--; os->callback(os->source, os->operation_id, media, num, os->user_data, NULL); g_free(id); }
static GrlMedia * grl_tracker_build_grilo_media_default (GHashTable *ht) { if (g_hash_table_lookup (ht, RDF_TYPE_MUSIC)) { return grl_media_audio_new (); } else if (g_hash_table_lookup (ht, RDF_TYPE_VIDEO)) { return grl_media_video_new (); } else if (g_hash_table_lookup (ht, RDF_TYPE_IMAGE)) { return grl_media_image_new (); } else if (g_hash_table_lookup (ht, RDF_TYPE_ARTIST)) { return grl_media_container_new (); } else if (g_hash_table_lookup (ht, RDF_TYPE_ALBUM)) { return grl_media_container_new (); } else if (g_hash_table_lookup (ht, RDF_TYPE_CONTAINER)) { return grl_media_container_new (); } else if (g_hash_table_lookup (ht, RDF_TYPE_FOLDER)) { return grl_media_container_new (); } return NULL; }
static GrlMedia* build_media_id_name_from_stmt(sqlite3_stmt *sql_stmt) { GrlMedia *media = NULL; guint media_id = 0; gchar *id = NULL; const gchar *media_name = NULL; media = grl_media_container_new(); media_id = (guint) sqlite3_column_int(sql_stmt, 0); media_name = (gchar *) sqlite3_column_text(sql_stmt, 1); id = g_strdup_printf("%d", media_id); grl_media_set_id(media, id); grl_media_set_title(media, media_name); g_free(id); return media; }
static GrlMedia * unserialize_media (GrlSource *source, const gchar *serial) { GrlMedia *media; /* gchar *parent_serial; */ if (g_strcmp0 (serial, MS2_ROOT) == 0) { /* Root container must be built from scratch */ media = grl_media_container_new (); grl_media_set_source (media, grl_source_get_id (source)); /* Set parent to itself */ /* parent_serial = grl_media_serialize (media); */ /* grl_media_set_grilo_ms2_parent (media, parent_serial); */ /* g_free (parent_serial); */ grl_media_set_grilo_ms2_parent (media, MS2_ROOT); } else { media = grl_media_unserialize (serial); } return media; }
static GrlMedia * create_media (sqlite3_stmt * stmt, GList *keys) { GrlMedia *media; gint media_type; media_type = sqlite3_column_int (stmt, STORE_TYPE_ID); switch (media_type) { case MEDIA_AUDIO: media = grl_media_audio_new (); break; case MEDIA_VIDEO: media = grl_media_video_new (); break; case MEDIA_IMAGE: media = grl_media_image_new (); break; case MEDIA_CONTAINER: media = grl_media_container_new (); break; default: media = grl_media_new (); } grl_media_set_source (media, (const gchar *) sqlite3_column_text (stmt, STORE_SOURCE_ID)); grl_media_set_id (media, (const gchar *) sqlite3_column_text (stmt, STORE_MEDIA_ID)); fill_metadata_from_stmt (media, keys, stmt); return media; }