static void dump_thumbs (Itdb_PhotoDB *db, Itdb_Artwork *artwork, const gchar *album_name, const gchar *dir) { GList *it; gint i = 0; GList *thumbnails; thumbnails = itdb_thumb_to_pixbufs (db->device, artwork->thumbnail); for (it = thumbnails; it != NULL; it = it->next, i++) { gchar *filename, *path; GdkPixbuf *pixbuf; pixbuf = GDK_PIXBUF (it->data); g_return_if_fail (pixbuf); filename = g_strdup_printf ("%s-%d-%d.png", album_name, artwork->id, i ); path = g_build_filename (dir, filename, NULL); g_free (filename); gdk_pixbuf_save (pixbuf, path, "png", NULL, NULL); g_object_unref (pixbuf); g_free (path); } g_list_free (thumbnails); }
static void save_song_thumbnails (Itdb_Track *song) { static guint count = 0; GList *it; GList *thumbs; if (song->artwork->thumbnail == NULL) { return; } thumbs = itdb_thumb_to_pixbufs (song->itdb->device, song->artwork->thumbnail); for (it = thumbs; it != NULL; it = it->next) { GdkPixbuf *pixbuf; pixbuf = GDK_PIXBUF (it->data); g_return_if_fail (pixbuf); save_itdb_thumb (song, pixbuf, count); count++; } g_list_free (thumbs); }