diff options
Diffstat (limited to 'plugins/gtkui')
-rw-r--r-- | plugins/gtkui/coverart.c | 31 | ||||
-rw-r--r-- | plugins/gtkui/widgets.c | 25 |
2 files changed, 27 insertions, 29 deletions
diff --git a/plugins/gtkui/coverart.c b/plugins/gtkui/coverart.c index 20ad87d7..e1dec261 100644 --- a/plugins/gtkui/coverart.c +++ b/plugins/gtkui/coverart.c @@ -200,16 +200,26 @@ loading_thread (void *none) { } } +typedef struct { + int width; + void (*callback)(void *user_data); + void *user_data; +} cover_avail_info_t; + static void cover_avail_callback (const char *fname, const char *artist, const char *album, void *user_data) { + if (!fname) { + free (user_data); + return; + } + cover_avail_info_t *dt = user_data; // means requested image is now in disk cache // load it into main memory - GdkPixbuf *pb = get_cover_art (fname, artist, album, (intptr_t)user_data); + GdkPixbuf *pb = get_cover_art_callb (fname, artist, album, dt->width, dt->callback, dt->user_data); if (pb) { g_object_unref (pb); -// // already in cache, redraw -// g_idle_add (redraw_playlist_cb, NULL); } + free (dt); } static GdkPixbuf * @@ -255,7 +265,11 @@ get_cover_art (const char *fname, const char *artist, const char *album, int wid if (!coverart_plugin) { return NULL; } - char *image_fname = coverart_plugin->get_album_art (fname, artist, album, -1, cover_avail_callback, (void *)(intptr_t)width); + cover_avail_info_t *dt = malloc (sizeof (cover_avail_info_t)); + dt->width = width; + dt->callback = redraw_playlist; + dt->user_data = NULL; + char *image_fname = coverart_plugin->get_album_art (fname, artist, album, -1, cover_avail_callback, (void*)dt); if (image_fname) { GdkPixbuf *pb = get_pixbuf (image_fname, width, redraw_playlist, NULL); free (image_fname); @@ -265,12 +279,15 @@ get_cover_art (const char *fname, const char *artist, const char *album, int wid } GdkPixbuf * -get_cover_art_callb (const char *fname, const char *artist, const char *album, int width, void -(*callback) (void *user_data), void *user_data) { +get_cover_art_callb (const char *fname, const char *artist, const char *album, int width, void (*callback) (void *user_data), void *user_data) { if (!coverart_plugin) { return NULL; } - char *image_fname = coverart_plugin->get_album_art (fname, artist, album, -1, cover_avail_callback, (void *)(intptr_t)width); + cover_avail_info_t *dt = malloc (sizeof (cover_avail_info_t)); + dt->width = width; + dt->callback = callback; + dt->user_data = user_data; + char *image_fname = coverart_plugin->get_album_art (fname, artist, album, -1, cover_avail_callback, dt); if (image_fname) { GdkPixbuf *pb = get_pixbuf (image_fname, width, callback, user_data); free (image_fname); diff --git a/plugins/gtkui/widgets.c b/plugins/gtkui/widgets.c index fad930ef..277df34f 100644 --- a/plugins/gtkui/widgets.c +++ b/plugins/gtkui/widgets.c @@ -178,7 +178,6 @@ const char * w_create_from_string (const char *s, ddb_gtkui_widget_t **parent) { char t[MAX_TOKEN]; s = gettoken (s, t); - printf ("%s\n", t); if (!s) { return NULL; } @@ -189,7 +188,6 @@ w_create_from_string (const char *s, ddb_gtkui_widget_t **parent) { } s = gettoken (s, t); - printf ("%s\n", t); if (!s) { w_destroy (w); return NULL; @@ -206,7 +204,6 @@ w_create_from_string (const char *s, ddb_gtkui_widget_t **parent) { return NULL; } for (;;) { - printf ("internal: %s\n", t); if (!strcmp (t, "}")) { break; } @@ -328,7 +325,6 @@ on_cut_activate (GtkMenuItem *menuitem, gpointer user_data) { current_widget = w_create ("placeholder"); w_append (parent, current_widget); } - printf ("%s\n", paste_buffer); w_save (); } @@ -342,7 +338,6 @@ on_copy_activate (GtkMenuItem *menuitem, gpointer user_data) { // FIXME: use real clipboard paste_buffer[0] = 0; save_widget_to_string (paste_buffer, current_widget); - printf ("%s\n", paste_buffer); } static void @@ -396,7 +391,6 @@ w_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_da if (!design_mode || event->button != 3) { return FALSE; } - printf ("button_press on %s (%p)\n", G_OBJECT_TYPE_NAME (widget), widget); current_widget = user_data; hidden = 1; @@ -469,7 +463,6 @@ w_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_da static void w_override_signals (GtkWidget *widget, gpointer user_data) { - printf ("w_override_signals on %s (%p)\n", G_OBJECT_TYPE_NAME (widget), widget); g_signal_connect ((gpointer) widget, "button_press_event", G_CALLBACK (w_button_press_event), user_data); g_signal_connect ((gpointer) widget, "expose_event", G_CALLBACK (w_expose_event), user_data); if (GTK_IS_CONTAINER (widget)) { @@ -541,7 +534,6 @@ w_destroy (ddb_gtkui_widget_t *w) { ///// gtk_container convenience functions void w_container_add (ddb_gtkui_widget_t *cont, ddb_gtkui_widget_t *child) { - printf ("append %s to %s\n", child->type, cont->type); GtkWidget *container = NULL; container = cont->widget; gtk_container_add (GTK_CONTAINER (container), child->widget); @@ -550,7 +542,6 @@ w_container_add (ddb_gtkui_widget_t *cont, ddb_gtkui_widget_t *child) { void w_container_remove (ddb_gtkui_widget_t *cont, ddb_gtkui_widget_t *child) { - printf ("remove %s from %s\n", child->type, cont->type); GtkWidget *container = NULL; container = cont->widget; gtk_container_remove (GTK_CONTAINER (container), child->widget); @@ -607,12 +598,10 @@ w_placeholder_create (void) { ////// vsplitter widget void w_splitter_replace (ddb_gtkui_widget_t *cont, ddb_gtkui_widget_t *child, ddb_gtkui_widget_t *newchild) { - printf ("w_splitter_replace %p\n", child); int ntab = 0; ddb_gtkui_widget_t *prev = NULL; for (ddb_gtkui_widget_t *c = cont->children; c; c = c->next, ntab++) { if (c == child) { - printf ("removing child %d\n", ntab); newchild->next = c->next; if (prev) { prev->next = newchild; @@ -693,12 +682,10 @@ w_tabs_add (ddb_gtkui_widget_t *cont, ddb_gtkui_widget_t *child) { void w_tabs_replace (ddb_gtkui_widget_t *cont, ddb_gtkui_widget_t *child, ddb_gtkui_widget_t *newchild) { - printf ("w_tabs_replace %p\n", child); int ntab = 0; ddb_gtkui_widget_t *prev = NULL; for (ddb_gtkui_widget_t *c = cont->children; c; c = c->next, ntab++) { if (c == child) { - printf ("removing tab %d\n", ntab); newchild->next = c->next; if (prev) { prev->next = newchild; @@ -1087,16 +1074,14 @@ w_selproperties_create (void) { } ///// cover art display -static void -cover_avail_callback (void *user_data) { - printf ("cover avail\n"); +void +coverart_avail_callback (void *user_data) { w_coverart_t *w = user_data; gtk_widget_queue_draw (w->drawarea); } static gboolean coverart_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data) { - printf ("coverart_expose_event\n"); DB_playItem_t *it = deadbeef->streamer_get_playing_track (); if (!it) { return FALSE; @@ -1108,17 +1093,13 @@ coverart_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_d if (!album || !*album) { album = deadbeef->pl_find_meta (it, "title"); } - GdkPixbuf *pixbuf = get_cover_art_callb (deadbeef->pl_find_meta ((it), ":URI"), artist, album, min(width,height), cover_avail_callback, user_data); + GdkPixbuf *pixbuf = get_cover_art_callb (deadbeef->pl_find_meta ((it), ":URI"), artist, album, min(width,height), coverart_avail_callback, user_data); if (pixbuf) { - printf ("found\n"); int pw = gdk_pixbuf_get_width (pixbuf); int ph = gdk_pixbuf_get_height (pixbuf); gdk_draw_pixbuf (widget->window, widget->style->white_gc, pixbuf, 0, 0, widget->allocation.width/2-pw/2, widget->allocation.height/2-ph/2, pw, ph, GDK_RGB_DITHER_NONE, 0, 0); g_object_unref (pixbuf); } - else { - printf ("not found\n"); - } deadbeef->pl_item_unref (it); return TRUE; } |