70
70
if(ret == META_DATA_AVAILABLE) {
71
if(met->content_type == META_DATA_CONTENT_URI)
73
const gchar *path = meta_data_get_uri(met);
74
GdkPixbuf *pb = gdk_pixbuf_new_from_file_at_scale(path,64,64,TRUE,NULL);
77
screenshot_add_border(&pb);
79
/* Default to gmpc icon when no icon is found */
81
pb = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),"gmpc" , 64, 0,NULL);
82
if(!pb) return; /* should never happen, bail out */
84
notify_notification_set_icon_from_pixbuf(not, pb);
71
if(met->content_type == META_DATA_CONTENT_URI)
73
const gchar *path = meta_data_get_uri(met);
74
GdkPixbuf *pb = gdk_pixbuf_new_from_file_at_scale(path,64,64,TRUE,NULL);
77
screenshot_add_border(&pb);
79
/* Default to gmpc icon when no icon is found */
81
pb = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),"gmpc" , 64, 0,NULL);
82
if(!pb) return; /* should never happen, bail out */
84
notify_notification_set_icon_from_pixbuf(not, pb);
88
88
} else if (ret == META_DATA_FETCHING) {
89
89
GdkPixbuf *pb = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),"gmpc-loading-cover" , 64, 0,NULL);
90
90
/* Default to gmpc icon when no icon is found */
93
93
if(!pb) return; /* should never happen, bail out */
95
95
notify_notification_set_icon_from_pixbuf(not, pb);
99
99
GdkPixbuf *pb = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),"gmpc" , 64, 0,NULL);
101
g_log(LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Failed to load gmpc icon");
101
g_log(LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Failed to load gmpc icon");
102
102
notify_notification_set_icon_from_pixbuf(not, pb);
120
120
if(!cfg_get_single_value_as_int_with_default(config, "libnotify-plugin", "enable", TRUE))
122
122
song = mpd_playlist_get_current_song(connection);
126
127
gchar buffer[1024];
128
gchar *version = NULL, *ret_name = NULL, *ret_vendor = NULL, *ret_spec_version = NULL;
132
notify_get_server_info(&ret_name, &ret_vendor, &version, &ret_spec_version);
134
versions = split_version(version);
136
versions = g_malloc0(4*sizeof(int));
138
g_log(LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "libnotify version: %i %i %i\n", versions[0], versions[1], versions[2]);
139
if((versions[0] > 0) || (versions[0] == 0 && versions[1] >= 4))
140
mpd_song_markup(buffer, 1024, C_("Summary markup","%title%|%name%|%shortfile%"), song);
142
mpd_song_markup_escaped(buffer, 1024, "%title%|%name%|%shortfile%", song);
129
gchar *version = NULL, *ret_name = NULL, *ret_vendor = NULL, *ret_spec_version = NULL;
133
notify_get_server_info(&ret_name, &ret_vendor, &version, &ret_spec_version);
135
versions = split_version(version);
137
versions = g_malloc0(4*sizeof(int));
139
g_log(LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "libnotify version: %i %i %i\n", versions[0], versions[1], versions[2]);
140
if((versions[0] > 0) || (versions[0] == 0 && versions[1] >= 4))
141
mpd_song_markup(buffer, 1024, C_("Summary markup","%title%|%name%|%shortfile%"), song);
143
mpd_song_markup_escaped(buffer, 1024, "%title%|%name%|%shortfile%", song);
143
144
summary = g_strdup(buffer);
144
145
mpd_song_markup_escaped(buffer, 1024,
145
(char *)C_("Body markup", "[<b>Artist:</b> %artist%\n][<b>Album:</b> %album% [(%date%)]\n][<b>Genre:</b> %genre%\n]"),
147
/* if notification exists update it, else create one */
150
// notify_notification_close(not, NULL);
151
not = notify_notification_new(summary, buffer,NULL, NULL);
154
notify_notification_update(not, summary, buffer, NULL);
156
notify_notification_set_urgency(not, NOTIFY_URGENCY_LOW);
146
(char *)C_("Body markup", "[<b>Artist:</b> %artist%\n][<b>Album:</b> %album% [(%date%)]\n][<b>Genre:</b> %genre%\n]"),
148
/* if notification exists update it, else create one */
151
// notify_notification_close(not, NULL);
152
not = notify_notification_new(summary, buffer,NULL, NULL);
155
notify_notification_update(not, summary, buffer, NULL);
157
notify_notification_set_urgency(not, NOTIFY_URGENCY_LOW);
158
159
if(cfg_get_single_value_as_int_with_default(config, "libnotify-plugin", "attach-to-tray", TRUE))
159
160
notify_notification_attach_to_status_icon(not, tray_icon2_gsi);
162
163
/* Add the song to the widget */
163
164
g_object_set_data_full(G_OBJECT(not), "mpd-song", mpd_songDup(song), (GDestroyNotify)mpd_freeSong);
165
pb = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),"gmpc" , 64, 0,NULL);
167
notify_notification_set_icon_from_pixbuf(not, pb);
166
pb = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),"gmpc" , 64, 0,NULL);
168
notify_notification_set_icon_from_pixbuf(not, pb);
170
171
ret = gmpc_meta_watcher_get_meta_path(gmw,song, META_ALBUM_ART,&met);
171
172
libnotify_update_cover(gmw, song, META_ALBUM_ART, ret, met, NULL);
173
174
meta_data_free(met);
175
176
if(!notify_notification_show(not, NULL))
177
notify_notification_close(not,NULL);
185
g_free(ret_spec_version);
178
notify_notification_close(not,NULL);
186
g_free(ret_spec_version);
192
193
/* mpd changed */
199
200
int plugin_api_version = PLUGIN_API_VERSION;
200
201
/* main plugin_osd info */
201
202
gmpcPlugin plugin = {
202
.name = "Libnotify Plugin",
203
.name = "Libnotify Plugin",
203
204
.version = {PLUGIN_MAJOR_VERSION,PLUGIN_MINOR_VERSION,PLUGIN_MICRO_VERSION},
204
.plugin_type = GMPC_PLUGIN_NO_GUI,
205
.init = libnotify_plugin_init,
206
.destroy = libnotify_plugin_destroy,
207
.mpd_status_changed = &libnotify_mpd_status_changed,
208
.get_enabled = libnotify_get_enabled,
209
.set_enabled = libnotify_set_enabled,
205
.plugin_type = GMPC_PLUGIN_NO_GUI,
206
.init = libnotify_plugin_init,
207
.destroy = libnotify_plugin_destroy,
208
.mpd_status_changed = &libnotify_mpd_status_changed,
209
.get_enabled = libnotify_get_enabled,
210
.set_enabled = libnotify_set_enabled,
211
.get_translation_domain = libnotify_get_translation_domain
212
.get_translation_domain = libnotify_get_translation_domain