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_BOX: media = grl_media_box_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; }
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_box_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_box_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_box_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 * create_media_box (GrlDvbDaemonExporter *self) { GrlMedia * box = GRL_MEDIA (grl_media_box_new ()); grl_media_set_id (box, self->priv->channel_list_path); grl_media_set_title (box, self->priv->name); return box; }
/* Builds an appropriate GrlMedia based on ontology type returned by tracker, or NULL if unknown */ GrlMedia * grl_tracker_build_grilo_media (const gchar *rdf_type) { GrlMedia *media = NULL; gchar **rdf_single_type; int i; if (!rdf_type) { return NULL; } /* As rdf_type can be formed by several types, split them */ rdf_single_type = g_strsplit (rdf_type, ",", -1); i = g_strv_length (rdf_single_type) - 1; while (!media && i >= 0) { if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_MUSIC)) { media = grl_media_audio_new (); } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_VIDEO)) { media = grl_media_video_new (); } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_IMAGE)) { media = grl_media_image_new (); } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_ARTIST)) { media = grl_media_box_new (); } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_ALBUM)) { media = grl_media_box_new (); } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_BOX)) { media = grl_media_box_new (); } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_FOLDER)) { media = grl_media_box_new (); } i--; } g_strfreev (rdf_single_type); if (!media) media = grl_media_new (); return media; }
static GrlMedia * produce_container_from_directory (GrlMedia *media, CategoryInfo *dir, guint index, RaitvMediaType type) { GrlMedia *content; gchar* mediaid=NULL; if (!media) { content = grl_media_box_new (); } else { content = media; } if (!dir) { grl_media_set_id (content, NULL); grl_media_set_title (content, RAITV_ROOT_NAME); } else { switch(type) { case RAITV_MEDIA_TYPE_ROOT : case RAITV_MEDIA_TYPE_POPULARS : case RAITV_MEDIA_TYPE_RECENTS : mediaid = g_strdup_printf("%s",dir[index].id); break; case RAITV_MEDIA_TYPE_POPULAR_THEME : mediaid = g_strdup_printf("%s/%s", RAITV_POPULARS_THEME_ID, dir[index].id); break; case RAITV_MEDIA_TYPE_RECENT_THEME : mediaid = g_strdup_printf("%s/%s", RAITV_RECENTS_THEME_ID, dir[index].id); break; default: break; } GRL_DEBUG ("MediaId=%s, Type:%d, Titolo:%s",mediaid, type, dir[index].name); grl_media_set_id (content, mediaid); grl_media_set_title (content, g_dgettext (GETTEXT_PACKAGE, dir[index].name)); g_free(mediaid); } return content; }
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_box_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 * build_media_from_resource (GrlMedia *content, GomResource *resource, GrlTypeFilter type_filter) { GrlMedia *media = NULL; gint64 id; gchar *str_id; gchar *title; gchar *url; gchar *desc; gchar *date; gchar *mime; gchar *thumb; guint type; if (content) { media = content; } g_object_get (resource, "id", &id, "title", &title, "url", &url, "desc", &desc, "date", &date, "mime", &mime, "type", &type, "thumbnail-url", &thumb, NULL); if (!media) { if (type == BOOKMARK_TYPE_CATEGORY) { media = GRL_MEDIA (grl_media_box_new ()); } else if (mime_is_audio (mime)) { if (type_filter & GRL_TYPE_FILTER_AUDIO) media = GRL_MEDIA (grl_media_new ()); } else if (mime_is_video (mime)) { if (type_filter & GRL_TYPE_FILTER_VIDEO) media = GRL_MEDIA (grl_media_new ()); } else if (mime_is_image (mime)) { if (type_filter & GRL_TYPE_FILTER_IMAGE) media = GRL_MEDIA (grl_media_image_new ()); } else { if (type_filter != GRL_TYPE_FILTER_NONE) media = GRL_MEDIA (grl_media_new ()); } } if (!media) return NULL; str_id = g_strdup_printf ("%" G_GINT64_FORMAT, id); grl_media_set_id (media, str_id); g_free (str_id); grl_media_set_title (media, title); if (url) { grl_media_set_url (media, url); } if (desc) { grl_media_set_description (media, desc); } if (date) { GDateTime *date_time = grl_date_time_from_iso8601 (date); if (date_time) { grl_data_set_boxed (GRL_DATA (media), GRL_BOOKMARKS_KEY_BOOKMARK_TIME, date_time); g_date_time_unref (date_time); } } if (thumb) { grl_media_set_thumbnail (media, thumb); } g_free (title); g_free (url); g_free (desc); g_free (date); g_free (mime); g_free (thumb); return media; }