From b8cf55c28e131ebdcb0a32fe0e8c14fefebebcea Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Tue, 23 Aug 2011 17:26:02 +0200 Subject: Configureable fifo path See #149. --- src/main.c | 6 ++---- src/settings.c | 6 ++++++ src/settings.h | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index ece6909..c103bdd 100644 --- a/src/main.c +++ b/src/main.c @@ -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; -- cgit v1.2.3