From 6f2be4727064bf96c9cfa4622c144566b8c7d7cf Mon Sep 17 00:00:00 2001 From: "J. Alexander Treuman" Date: Tue, 12 Jun 2007 18:28:57 +0000 Subject: Make the shout timeout configurable. The default is still 2 seconds. git-svn-id: https://svn.musicpd.org/mpd/trunk@6556 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/audioOutputs/audioOutput_shout.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/audioOutputs/audioOutput_shout.c b/src/audioOutputs/audioOutput_shout.c index 41e19a45..5444912c 100644 --- a/src/audioOutputs/audioOutput_shout.c +++ b/src/audioOutputs/audioOutput_shout.c @@ -33,7 +33,7 @@ #include #define CONN_ATTEMPT_INTERVAL 60 -#define CONN_TIMEOUT 2 +#define DEFAULT_CONN_TIMEOUT 2 static int shoutInitCount; @@ -63,6 +63,7 @@ typedef struct _ShoutData { MpdTag *tag; int tagToSend; + int timeout; int connAttempts; time_t lastAttempt; @@ -80,6 +81,7 @@ static ShoutData *newShoutData(void) ret->tagToSend = 0; ret->bitrate = -1; ret->quality = -2.0; + ret->timeout = DEFAULT_CONN_TIMEOUT; ret->connAttempts = 0; ret->lastAttempt = 0; ret->audioFormat = NULL; @@ -221,6 +223,15 @@ static int myShout_initDriver(AudioOutput * audioOutput, ConfigParam * param) } /* optional paramters */ + blockParam = getBlockParam(param, "timeout"); + if (blockParam) { + sd->timeout = strtod(blockParam->value, &test); + if (*test != '\0' || sd->timeout <= 0) { + FATAL("shout timeout is not a positive integer, " + "line %i\n", blockParam->line); + } + } + blockParam = getBlockParam(param, "genre"); if (blockParam && shout_set_genre(sd->shoutConn, blockParam->value)) { FATAL("error configuring shout defined at line %i: %s\n", @@ -451,7 +462,7 @@ static int myShout_openShoutConn(AudioOutput * audioOutput) state = shout_open(sd->shoutConn); - while (state == SHOUTERR_BUSY && (t - sd->lastAttempt) < CONN_TIMEOUT) { + while (state == SHOUTERR_BUSY && (t - sd->lastAttempt) < sd->timeout) { my_usleep(10000); state = shout_get_connected(sd->shoutConn); t = time(NULL); -- cgit v1.2.3