diff options
author | Lars-Dominik Braun <lars@6xq.net> | 2011-08-23 17:26:02 +0200 |
---|---|---|
committer | Lars-Dominik Braun <lars@6xq.net> | 2011-08-23 17:26:02 +0200 |
commit | b8cf55c28e131ebdcb0a32fe0e8c14fefebebcea (patch) | |
tree | ea01c8c1d9979a1f83d3b56ffb830ebdfea23c4f /src | |
parent | df557e9c75d23a66c99a6fdad07b384f7636cb9c (diff) | |
download | pianobar-windows-b8cf55c28e131ebdcb0a32fe0e8c14fefebebcea.tar.gz pianobar-windows-b8cf55c28e131ebdcb0a32fe0e8c14fefebebcea.tar.bz2 pianobar-windows-b8cf55c28e131ebdcb0a32fe0e8c14fefebebcea.zip |
Configureable fifo path
See #149.
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 6 | ||||
-rw-r--r-- | src/settings.c | 6 | ||||
-rw-r--r-- | src/settings.h | 1 |
3 files changed, 9 insertions, 4 deletions
@@ -326,7 +326,6 @@ static void BarMainLoop (BarApp_t *app) { int main (int argc, char **argv) { static BarApp_t app; - char ctlPath[PATH_MAX]; /* terminal attributes _before_ we started messing around with ~ECHO */ struct termios termOrig; @@ -363,14 +362,13 @@ int main (int argc, char **argv) { app.input.fds[0] = STDIN_FILENO; FD_SET(app.input.fds[0], &app.input.set); - BarGetXdgConfigDir (PACKAGE "/ctl", ctlPath, sizeof (ctlPath)); /* open fifo read/write so it won't EOF if nobody writes to it */ assert (sizeof (app.input.fds) / sizeof (*app.input.fds) >= 2); - app.input.fds[1] = open (ctlPath, O_RDWR); + app.input.fds[1] = open (app.settings.fifo, O_RDWR); if (app.input.fds[1] != -1) { FD_SET(app.input.fds[1], &app.input.set); BarUiMsg (&app.settings, MSG_INFO, "Control fifo at %s opened\n", - ctlPath); + app.settings.fifo); } app.input.maxfd = app.input.fds[0] > app.input.fds[1] ? app.input.fds[0] : app.input.fds[1]; diff --git a/src/settings.c b/src/settings.c index ea17985..49d75e6 100644 --- a/src/settings.c +++ b/src/settings.c @@ -91,6 +91,7 @@ void BarSettingsDestroy (BarSettings_t *settings) { free (settings->atIcon); free (settings->npSongFormat); free (settings->npStationFormat); + free (settings->fifo); for (size_t i = 0; i < MSG_COUNT; i++) { free (settings->msgFormat[i].prefix); free (settings->msgFormat[i].postfix); @@ -126,6 +127,8 @@ void BarSettingsRead (BarSettings_t *settings) { settings->atIcon = strdup (" @ "); settings->npSongFormat = strdup ("\"%t\" by \"%a\" on \"%l\"%r%@%s"); settings->npStationFormat = strdup ("Station \"%n\" (%i)"); + settings->fifo = malloc (PATH_MAX * sizeof (*settings->fifo)); + BarGetXdgConfigDir (PACKAGE "/ctl", settings->fifo, PATH_MAX); settings->msgFormat[MSG_NONE].prefix = NULL; settings->msgFormat[MSG_NONE].postfix = NULL; @@ -228,6 +231,9 @@ void BarSettingsRead (BarSettings_t *settings) { } else if (streq ("format_nowplaying_station", key)) { free (settings->npStationFormat); settings->npStationFormat = strdup (val); + } else if (streq ("fifo", key)) { + free (settings->fifo); + settings->fifo = strdup (val); } else if (strncmp (formatMsgPrefix, key, strlen (formatMsgPrefix)) == 0) { static const char *mapping[] = {"none", "info", "nowplaying", diff --git a/src/settings.h b/src/settings.h index af616a2..ca5db60 100644 --- a/src/settings.h +++ b/src/settings.h @@ -94,6 +94,7 @@ typedef struct { char *atIcon; char *npSongFormat; char *npStationFormat; + char *fifo; BarMsgFormatStr_t msgFormat[MSG_COUNT]; } BarSettings_t; |