aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ. Alexander Treuman <jat@spatialrift.net>2007-06-12 18:28:57 +0000
committerJ. Alexander Treuman <jat@spatialrift.net>2007-06-12 18:28:57 +0000
commit6f2be4727064bf96c9cfa4622c144566b8c7d7cf (patch)
tree8e7ce3e29515eeab8c8be2c8208f3da3eec9159e /src
parent3c5cecb828cdf9618cd4ec14a15f8cc59e313db8 (diff)
downloadmpd-6f2be4727064bf96c9cfa4622c144566b8c7d7cf.tar.gz
mpd-6f2be4727064bf96c9cfa4622c144566b8c7d7cf.tar.xz
mpd-6f2be4727064bf96c9cfa4622c144566b8c7d7cf.zip
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
Diffstat (limited to '')
-rw-r--r--src/audioOutputs/audioOutput_shout.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/audioOutputs/audioOutput_shout.c b/src/audioOutputs/audioOutput_shout.c
index 41e19a450..5444912c5 100644
--- a/src/audioOutputs/audioOutput_shout.c
+++ b/src/audioOutputs/audioOutput_shout.c
@@ -33,7 +33,7 @@
#include <vorbis/vorbisenc.h>
#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);