static void resolve_album_art (ResolveData *resolve_data, resolution_flags_t flags) { const gchar *artist, *album; GCancellable *cancellable = NULL; GFile *cache_file = NULL; resolve_data_start_operation (resolve_data, "album-art"); artist = grl_media_audio_get_artist (GRL_MEDIA_AUDIO (resolve_data->rs->media)); album = grl_media_audio_get_album (GRL_MEDIA_AUDIO (resolve_data->rs->media)); if (!artist || !album) goto done; cancellable = resolve_data_ensure_cancellable (resolve_data); media_art_get_file (artist, album, "album", &cache_file); if (cache_file) { /* Check whether the cache file exists. */ resolve_data_start_operation (resolve_data, "album-art"); g_file_query_info_async (cache_file, G_FILE_ATTRIBUTE_ACCESS_CAN_READ, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, cancellable, resolve_album_art_cb, resolve_data); } else { GRL_DEBUG ("Found no thumbnail for artist %s and album %s", artist, album); } done: resolve_data_finish_operation (resolve_data, "album-art", NULL); g_clear_object (&cache_file); }
static GrlMedia * build_media(gint track_id, const gchar *artist_name, const gchar *album_name, const gchar *track_name, gint track_number, gint duration, const gchar *url_to_mp3) { GrlMedia *media = NULL; GrlMediaAudio *audio = NULL; gchar *str_track_id = NULL; media = grl_media_audio_new(); audio = GRL_MEDIA_AUDIO(media); grl_media_audio_set_track_number(audio, track_number); grl_media_audio_set_artist(audio, artist_name); grl_media_audio_set_album(audio, album_name); grl_media_set_url(media, url_to_mp3); grl_media_set_duration(media, duration); grl_media_set_title(media, track_name); str_track_id = g_strdup_printf("%d", track_id); grl_media_set_id(media, str_track_id); g_free(str_track_id); return media; }