From 3196efc864698254c2c5961243a413c3bf2e3299 Mon Sep 17 00:00:00 2001 From: Qball Cow Date: Wed, 19 Nov 2008 14:48:02 +0100 Subject: [PATCH] Update dirty hack --- src/plugin.c | 130 +++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 91 insertions(+), 39 deletions(-) diff --git a/src/plugin.c b/src/plugin.c index 8bb3710..dd8f9a6 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -116,46 +116,50 @@ static void lfr_browser_song_info(LastFM *l, mpd_Song *song, gpointer data) GtkWidget *label = NULL; GtkWidget *hbox = gtk_table_new(3, 3,FALSE); GtkWidget *temp = gtk_bin_get_child(GTK_BIN(song_info_box)); - if(temp) - gtk_widget_destroy(temp); - if(song) + + if(cfg_get_single_value_as_int_with_default(config, CONFIG_NAME, "dirty-hack", FALSE) == 0) { - gtk_table_set_row_spacings(GTK_TABLE(hbox), 6); - gtk_table_set_col_spacings(GTK_TABLE(hbox), 6); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 6); - /* artist */ - label = gtk_label_new(""); - gtk_misc_set_alignment(GTK_MISC(label), 1.0,0.5); - gtk_label_set_markup(GTK_LABEL(label),"Track"); - gtk_table_attach(GTK_TABLE(hbox), label,1,2,0,1,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); - label = gtk_label_new(song->title); - gtk_misc_set_alignment(GTK_MISC(label), 0.0,0.5); - gtk_table_attach(GTK_TABLE(hbox), label,2,3,0,1,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); - - label = gtk_label_new(""); - gtk_misc_set_alignment(GTK_MISC(label), 1.0,0.5); - gtk_label_set_markup(GTK_LABEL(label),"Artist"); - gtk_table_attach(GTK_TABLE(hbox), label,1,2,1,2,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); - label = gtk_label_new(song->artist); - gtk_misc_set_alignment(GTK_MISC(label), 0.0,0.5); - gtk_table_attach(GTK_TABLE(hbox), label,2,3,1,2,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); - - label = gtk_label_new(""); - gtk_misc_set_alignment(GTK_MISC(label), 1.0,0.5); - gtk_label_set_markup(GTK_LABEL(label),"Album"); - gtk_table_attach(GTK_TABLE(hbox), label,1,2,2,3,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); - label = gtk_label_new(song->album); - gtk_misc_set_alignment(GTK_MISC(label), 0.0,0.5); - gtk_table_attach(GTK_TABLE(hbox), label,2,3,2,3,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); - - label = gmpc_metaimage_new(META_ALBUM_ART); - gmpc_metaimage_update_cover_from_song(GMPC_METAIMAGE(label), song); - gtk_table_attach(GTK_TABLE(hbox), label,0,1,0,3,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); - - gtk_widget_show_all(hbox); - gtk_container_add(GTK_CONTAINER(song_info_box), hbox); + if(temp) + gtk_widget_destroy(temp); + if(song) + { + gtk_table_set_row_spacings(GTK_TABLE(hbox), 6); + gtk_table_set_col_spacings(GTK_TABLE(hbox), 6); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 6); + /* artist */ + label = gtk_label_new(""); + gtk_misc_set_alignment(GTK_MISC(label), 1.0,0.5); + gtk_label_set_markup(GTK_LABEL(label),"Track"); + gtk_table_attach(GTK_TABLE(hbox), label,1,2,0,1,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + label = gtk_label_new(song->title); + gtk_misc_set_alignment(GTK_MISC(label), 0.0,0.5); + gtk_table_attach(GTK_TABLE(hbox), label,2,3,0,1,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + + label = gtk_label_new(""); + gtk_misc_set_alignment(GTK_MISC(label), 1.0,0.5); + gtk_label_set_markup(GTK_LABEL(label),"Artist"); + gtk_table_attach(GTK_TABLE(hbox), label,1,2,1,2,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + label = gtk_label_new(song->artist); + gtk_misc_set_alignment(GTK_MISC(label), 0.0,0.5); + gtk_table_attach(GTK_TABLE(hbox), label,2,3,1,2,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + + label = gtk_label_new(""); + gtk_misc_set_alignment(GTK_MISC(label), 1.0,0.5); + gtk_label_set_markup(GTK_LABEL(label),"Album"); + gtk_table_attach(GTK_TABLE(hbox), label,1,2,2,3,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + label = gtk_label_new(song->album); + gtk_misc_set_alignment(GTK_MISC(label), 0.0,0.5); + gtk_table_attach(GTK_TABLE(hbox), label,2,3,2,3,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + + label = gmpc_metaimage_new(META_ALBUM_ART); + gmpc_metaimage_update_cover_from_song(GMPC_METAIMAGE(label), song); + gtk_table_attach(GTK_TABLE(hbox), label,0,1,0,3,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + + gtk_widget_show_all(hbox); + gtk_container_add(GTK_CONTAINER(song_info_box), hbox); + } } - if(cfg_get_single_value_as_int_with_default(config, CONFIG_NAME, "dirty-hack", FALSE) &&song && song->artist) + else if(song && song->artist) { mpd_Song *song2 = mpd_playlist_get_current_song(connection); int changed = 0; @@ -189,7 +193,55 @@ static void lfr_browser_song_info(LastFM *l, mpd_Song *song, gpointer data) song2->title = g_strdup(song->title); } if(changed) - gmpc_connection_status_changed(gmpcconn,connection, MPD_CST_SONGID); + { + gmpc_connection_status_changed(gmpcconn,connection, MPD_CST_SONGID|MPD_CST_SONGPOS); + if(temp) + gtk_widget_destroy(temp); + if(song) + { + gtk_table_set_row_spacings(GTK_TABLE(hbox), 6); + gtk_table_set_col_spacings(GTK_TABLE(hbox), 6); + gtk_container_set_border_width(GTK_CONTAINER(hbox), 6); + /* artist */ + label = gtk_label_new(""); + gtk_misc_set_alignment(GTK_MISC(label), 1.0,0.5); + gtk_label_set_markup(GTK_LABEL(label),"Track"); + gtk_table_attach(GTK_TABLE(hbox), label,1,2,0,1,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + label = gtk_label_new(song->title); + gtk_misc_set_alignment(GTK_MISC(label), 0.0,0.5); + gtk_table_attach(GTK_TABLE(hbox), label,2,3,0,1,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + + label = gtk_label_new(""); + gtk_misc_set_alignment(GTK_MISC(label), 1.0,0.5); + gtk_label_set_markup(GTK_LABEL(label),"Artist"); + gtk_table_attach(GTK_TABLE(hbox), label,1,2,1,2,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + label = gtk_label_new(song->artist); + gtk_misc_set_alignment(GTK_MISC(label), 0.0,0.5); + gtk_table_attach(GTK_TABLE(hbox), label,2,3,1,2,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + + label = gtk_label_new(""); + gtk_misc_set_alignment(GTK_MISC(label), 1.0,0.5); + gtk_label_set_markup(GTK_LABEL(label),"Album"); + gtk_table_attach(GTK_TABLE(hbox), label,1,2,2,3,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + label = gtk_label_new(song->album); + gtk_misc_set_alignment(GTK_MISC(label), 0.0,0.5); + gtk_table_attach(GTK_TABLE(hbox), label,2,3,2,3,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + + label = gmpc_metaimage_new(META_ALBUM_ART); + gmpc_metaimage_update_cover_from_song(GMPC_METAIMAGE(label), song); + gtk_table_attach(GTK_TABLE(hbox), label,0,1,0,3,GTK_FILL, GTK_FILL|GTK_SHRINK, 0,0); + + gtk_widget_show_all(hbox); + gtk_container_add(GTK_CONTAINER(song_info_box), hbox); + } + } + } + else + { + if(temp) + gtk_widget_destroy(temp); + + } } gulong lfm_update_timeout = 0; -- 2.11.4.GIT