Example #1
0
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;
}
Example #2
0
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;
}
Example #4
0
/* 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;
}
Example #5
0
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;
}
Example #6
0
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;
}
Example #7
0
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;
}