aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/conf.c24
-rw-r--r--src/conf.h5
-rw-r--r--src/output/alsa_plugin.c11
-rw-r--r--src/output/shout_plugin.c4
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)