static void artwork_notify_cb (RhythmDB *db, RhythmDBEntry *entry, const char *property_name, const GValue *metadata, RBMtpSource *source) { RBMtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (source); GdkPixbuf *pixbuf; const char *album_name; album_name = rhythmdb_entry_get_string (entry, RHYTHMDB_PROP_ALBUM); /* check if we're looking for art for this entry, and if we actually got some */ if (g_hash_table_remove (priv->artwork_request_map, album_name) == FALSE) return; if (G_VALUE_HOLDS (metadata, GDK_TYPE_PIXBUF) == FALSE) return; pixbuf = GDK_PIXBUF (g_value_get_object (metadata)); rb_mtp_thread_set_album_image (priv->device_thread, album_name, pixbuf); queue_free_space_update (source); }
static void art_request_cb (RBExtDBKey *key, RBExtDBKey *store_key, const char *filename, GValue *data, RBMtpSource *source) { RBMtpSourcePrivate *priv = MTP_SOURCE_GET_PRIVATE (source); if (G_VALUE_HOLDS (data, GDK_TYPE_PIXBUF)) { GdkPixbuf *pixbuf; const char *album_name; pixbuf = GDK_PIXBUF (g_value_get_object (data)); album_name = rb_ext_db_key_get_field (key, "album"); rb_mtp_thread_set_album_image (priv->device_thread, album_name, pixbuf); queue_free_space_update (source); } }