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
This commit is contained in:
parent
3c5cecb828
commit
6f2be47270
|
@ -375,6 +375,10 @@ default is "source".
|
|||
This specifies whether to request that the stream be listed in all public
|
||||
stream directories that the icecast server knows about. The default is no.
|
||||
.TP
|
||||
.B timeout <seconds>
|
||||
This specifies the number of seconds to wait before giving up on trying to
|
||||
connect to the icecast server. The default is 2 seconds.
|
||||
.TP
|
||||
.B description <description>
|
||||
This specifies a description of the stream.
|
||||
.TP
|
||||
|
|
|
@ -124,6 +124,7 @@ error_file "~/.mpd/mpd.error"
|
|||
# description "My Stream Description" # optional
|
||||
# genre "jazz" # optional
|
||||
# public "no" # optional
|
||||
# timeout "2" # optional
|
||||
#}
|
||||
#
|
||||
# An example of a null output (for no audio output):
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue