コード例 #1
0
static GrlMedia *
build_media_track_from_stmt(sqlite3_stmt *sql_stmt)
{
  GrlMedia *media = NULL;

  gint track_id;
  gint duration;
  gint track_number;
  const gchar *artist_name;
  const gchar *album_name;
  const gchar *track_name;
  const gchar *raw_url;
  gchar *encoded_url;
  gchar *url_to_mp3;

  track_id = (guint) sqlite3_column_int(sql_stmt, MAGNATUNE_TRACK_ID);
  artist_name = (gchar *) sqlite3_column_text(sql_stmt, MAGNATUNE_ARTIST_NAME);
  album_name = (gchar *) sqlite3_column_text(sql_stmt, MAGNATUNE_ALBUM_NAME);
  duration = (guint) sqlite3_column_int(sql_stmt, MAGNATUNE_TRACK_DURATION);
  track_number = (guint) sqlite3_column_int(sql_stmt, MAGNATUNE_TRACK_NUMBER);
  track_name = (gchar *) sqlite3_column_text(sql_stmt, MAGNATUNE_TRACK_NAME);
  raw_url = (gchar *) sqlite3_column_text(sql_stmt, MAGNATUNE_TRACK_URL_TO_MP3);

  encoded_url = g_uri_escape_string(raw_url, "", FALSE);
  url_to_mp3 = g_strdup_printf("%s/%s", URL_SONG_PLAY, encoded_url);
  media = build_media(track_id, artist_name, album_name, track_name,
                      track_number, duration, url_to_mp3);

  g_free(encoded_url);
  g_free(url_to_mp3);

  return media;
}
コード例 #2
0
ファイル: grl-magnatune.c プロジェクト: GNOME/grilo-plugins
static GrlMedia *
build_media_track_from_stmt(sqlite3_stmt *sql_stmt)
{
  GrlMedia *media = NULL;

  gint i;
  gint track_id;
  gint duration;
  gint track_number;
  const gchar *artist_name;
  const gchar *album_name;
  const gchar *track_name;
  const gchar *raw_url;
  gchar *encoded_url;
  gchar *url_to_mp3;
  gchar *encoded_artist;
  gchar *encoded_album;
  GPtrArray *url_to_covers;

  track_id = (guint) sqlite3_column_int(sql_stmt, MAGNATUNE_TRACK_ID);
  artist_name = (gchar *) sqlite3_column_text(sql_stmt, MAGNATUNE_ARTIST_NAME);
  album_name = (gchar *) sqlite3_column_text(sql_stmt, MAGNATUNE_ALBUM_NAME);
  duration = (guint) sqlite3_column_int(sql_stmt, MAGNATUNE_TRACK_DURATION);
  track_number = (guint) sqlite3_column_int(sql_stmt, MAGNATUNE_TRACK_NUMBER);
  track_name = (gchar *) sqlite3_column_text(sql_stmt, MAGNATUNE_TRACK_NAME);
  raw_url = (gchar *) sqlite3_column_text(sql_stmt, MAGNATUNE_TRACK_URL_TO_MP3);

  encoded_url = g_uri_escape_string(raw_url, "", FALSE);
  url_to_mp3 = g_strdup_printf("%s/%s", URL_SONG_PLAY, encoded_url);

  encoded_artist = g_uri_escape_string(artist_name, "", FALSE);
  encoded_album = g_uri_escape_string(album_name, "", FALSE);
  url_to_covers = g_ptr_array_new();
  for (i = 0; i < G_N_ELEMENTS(cover_art_sizes); i++) {
    gchar *cover = g_strdup_printf(URL_SONG_COVER_FORMAT, encoded_artist,
                                   encoded_album, cover_art_sizes[i]);
    g_ptr_array_add(url_to_covers, cover);
  }

  media = build_media(track_id, artist_name, album_name, track_name,
                      track_number, duration, url_to_mp3, url_to_covers);

  g_free(encoded_url);
  g_free(url_to_mp3);
  g_free(encoded_artist);
  g_free(encoded_album);
  g_ptr_array_free(url_to_covers, TRUE);

  return media;
}