summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGravatar Viktor Semykin <thesame.ml@gmail.com>2010-01-19 00:53:52 +0200
committerGravatar Viktor Semykin <thesame.ml@gmail.com>2010-01-19 00:53:52 +0200
commitd871f990b703f1b453a727b0346c69d181639118 (patch)
tree9246e753a82371d3d7d196ef4fe42663180bd07f /plugins
parentb07cca605c3686199cadbc797a083b99bce14d5f (diff)
notification command configuration
Diffstat (limited to 'plugins')
-rw-r--r--plugins/notification/notification.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/plugins/notification/notification.c b/plugins/notification/notification.c
index 38c68c9a..608b01b8 100644
--- a/plugins/notification/notification.c
+++ b/plugins/notification/notification.c
@@ -6,24 +6,25 @@
static DB_misc_t plugin;
static DB_functions_t *deadbeef;
+#define DEFAULT_COMMAND "notify-send '%t' '%a - %b'"
+
+static const char settings_dlg[] =
+ "property Command entry notification.command \"" DEFAULT_COMMAND "\";\n"
+;
+
static void
-show_notification (const char *summary, const char *body)
+show_notification (DB_playItem_t *track)
{
char cmd [1024];
- if (!summary) summary = "Unknown track";
- snprintf (cmd, sizeof (cmd), "notify-send '%s' '%s'", summary, body);
+ deadbeef->pl_format_title (track, cmd, sizeof (cmd), -1, deadbeef->conf_get_str ("notification.command", DEFAULT_COMMAND));
+ printf ("Invoking:\n%s\n", cmd);
system (cmd);
}
static int
songchanged (DB_event_trackchange_t *ev, uintptr_t data) {
DB_playItem_t *track = deadbeef->pl_get_for_idx (ev->to);
- const char *artist = deadbeef->pl_find_meta (track, "artist");
- const char *album = deadbeef->pl_find_meta (track, "album");
- const char *title = deadbeef->pl_find_meta (track, "title");
- char body [1024];
- snprintf (body, sizeof (body), "%s - %s", artist, album);
- show_notification (title, body);
+ show_notification (track);
return 0;
}
@@ -54,6 +55,7 @@ static DB_misc_t plugin = {
.plugin.email = "thesame.ml@gmail.com",
.plugin.website = "http://deadbeef.sf.net",
.plugin.start = notification_start,
- .plugin.stop = notification_stop
+ .plugin.stop = notification_stop,
+ .plugin.configdialog = settings_dlg
};