diff options
-rw-r--r-- | src/conf.c | 24 | ||||
-rw-r--r-- | src/conf.h | 5 | ||||
-rw-r--r-- | src/output/alsa_plugin.c | 11 | ||||
-rw-r--r-- | src/output/shout_plugin.c | 4 |
4 files changed, 23 insertions, 21 deletions
diff --git a/src/conf.c b/src/conf.c index d1decadcd..f8ee5519a 100644 --- a/src/conf.c +++ b/src/conf.c @@ -449,20 +449,24 @@ bool config_get_bool(const char *name, bool default_value) return !!value; } -int -getBoolBlockParam(struct config_param *param, const char *name, int force) +bool +config_get_block_bool(struct config_param *param, const char *name, + bool default_value) { - int ret; struct block_param *bp = getBlockParam(param, name); + int value; - if (!bp) - return CONF_BOOL_UNSET; + if (bp == NULL) + return default_value; - ret = get_bool(bp->value); - if (force && ret == CONF_BOOL_INVALID) + value = get_bool(bp->value); + if (value == CONF_BOOL_INVALID) g_error("%s is not a boolean value (yes, true, 1) or " "(no, false, 0) on line %i\n", - bp->value, bp->line); - return ret; -} + name, bp->line); + if (value == CONF_BOOL_UNSET) + return default_value; + + return !!value; +} diff --git a/src/conf.h b/src/conf.h index 33782beb5..435adf694 100644 --- a/src/conf.h +++ b/src/conf.h @@ -108,8 +108,9 @@ parseConfigFilePath(const char *name, int force); bool config_get_bool(const char *name, bool default_value); -int -getBoolBlockParam(struct config_param *param, const char *name, int force); +bool +config_get_block_bool(struct config_param *param, const char *name, + bool default_value); struct config_param * newConfigParam(const char *value, int line); diff --git a/src/output/alsa_plugin.c b/src/output/alsa_plugin.c index 0645b34b4..8034169ba 100644 --- a/src/output/alsa_plugin.c +++ b/src/output/alsa_plugin.c @@ -95,26 +95,25 @@ alsa_configure(AlsaData *ad, struct config_param *param) if ((bp = getBlockParam(param, "device"))) ad->device = g_strdup(bp->value); - ad->useMmap = getBoolBlockParam(param, "use_mmap", 1); - if (ad->useMmap == CONF_BOOL_UNSET) - ad->useMmap = 0; + ad->useMmap = config_get_block_bool(param, "use_mmap", false); + if ((bp = getBlockParam(param, "buffer_time"))) ad->buffer_time = atoi(bp->value); if ((bp = getBlockParam(param, "period_time"))) ad->period_time = atoi(bp->value); #ifdef SND_PCM_NO_AUTO_RESAMPLE - if (!getBoolBlockParam(param, "auto_resample", true)) + if (!config_get_block_bool(param, "auto_resample", true)) ad->mode |= SND_PCM_NO_AUTO_RESAMPLE; #endif #ifdef SND_PCM_NO_AUTO_CHANNELS - if (!getBoolBlockParam(param, "auto_channels", true)) + if (!config_get_block_bool(param, "auto_channels", true)) ad->mode |= SND_PCM_NO_AUTO_CHANNELS; #endif #ifdef SND_PCM_NO_AUTO_FORMAT - if (!getBoolBlockParam(param, "auto_format", true)) + if (!config_get_block_bool(param, "auto_format", true)) ad->mode |= SND_PCM_NO_AUTO_FORMAT; #endif } diff --git a/src/output/shout_plugin.c b/src/output/shout_plugin.c index 5947f6e20..7ca885996 100644 --- a/src/output/shout_plugin.c +++ b/src/output/shout_plugin.c @@ -138,9 +138,7 @@ static void *my_shout_init_driver(struct audio_output *audio_output, check_block_param("name"); name = block_param->value; - public = getBoolBlockParam(param, "public", 1); - if (public == CONF_BOOL_UNSET) - public = 0; + public = config_get_block_bool(param, "public", false); block_param = getBlockParam(param, "user"); if (block_param) |