From 3635c93acbc3da87880e886d924020c427d1774a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 25 Jan 2009 16:04:03 +0100 Subject: conf: allow param==NULL Return the default value in the conf_get_block_*() functions when param==NULL was passed. This simplifies a lot of code, because all initialization can be done in one code path, regardless whether configuration is present. --- src/conf.c | 3 +++ src/mixer/alsa_mixer.c | 3 --- src/mixer/oss_mixer.c | 3 --- src/output/alsa_plugin.c | 7 ++----- src/output/jack_plugin.c | 14 +------------- src/output/oss_plugin.c | 16 +++++++--------- 6 files changed, 13 insertions(+), 33 deletions(-) diff --git a/src/conf.c b/src/conf.c index fbb348cf9..9dfebc059 100644 --- a/src/conf.c +++ b/src/conf.c @@ -433,6 +433,9 @@ getBlockParam(const struct config_param * param, const char *name) struct block_param *ret = NULL; int i; + if (param == NULL) + return NULL; + for (i = 0; i < param->num_block_params; i++) { if (0 == strcmp(name, param->block_params[i].name)) { if (ret) { diff --git a/src/mixer/alsa_mixer.c b/src/mixer/alsa_mixer.c index d0cfdd5a2..d257dc3e8 100644 --- a/src/mixer/alsa_mixer.c +++ b/src/mixer/alsa_mixer.c @@ -48,9 +48,6 @@ alsa_mixer_configure(struct mixer_data *data, const struct config_param *param) struct alsa_mixer *am = (struct alsa_mixer *)data; const char *value; - if (param == NULL) - return; - value = config_get_block_string(param, "mixer_device", NULL); if (value != NULL) { g_free(am->device); diff --git a/src/mixer/oss_mixer.c b/src/mixer/oss_mixer.c index ed370483d..a72806ead 100644 --- a/src/mixer/oss_mixer.c +++ b/src/mixer/oss_mixer.c @@ -52,9 +52,6 @@ oss_mixer_configure(struct mixer_data *data, const struct config_param *param) struct oss_mixer *om = (struct oss_mixer *) data; const char *value; - if (param == NULL) - return; - value = config_get_block_string(param, "mixer_device", NULL); if (value != NULL) { g_free(om->device); diff --git a/src/output/alsa_plugin.c b/src/output/alsa_plugin.c index 536d399d1..23a9089cd 100644 --- a/src/output/alsa_plugin.c +++ b/src/output/alsa_plugin.c @@ -85,13 +85,9 @@ alsa_data_new(void) { struct alsa_data *ret = g_new(struct alsa_data, 1); - ret->device = NULL; ret->mode = 0; ret->pcm = NULL; ret->writei = snd_pcm_writei; - ret->use_mmap = false; - ret->buffer_time = MPD_ALSA_BUFFER_TIME_US; - ret->period_time = MPD_ALSA_PERIOD_TIME_US; //use alsa mixer by default mixer_init(&ret->mixer, &alsa_mixer); @@ -149,8 +145,9 @@ alsa_init(G_GNUC_UNUSED struct audio_output *ao, free_global_registered = 1; } + alsa_configure(ad, param); + if (param) { - alsa_configure(ad, param); mixer_configure(&ad->mixer, param); } diff --git a/src/output/jack_plugin.c b/src/output/jack_plugin.c index 8d09dd1d9..8e4be218d 100644 --- a/src/output/jack_plugin.c +++ b/src/output/jack_plugin.c @@ -60,16 +60,6 @@ mpd_jack_name(const struct jack_data *jd) return audio_output_get_name(jd->ao); } -static struct jack_data * -mpd_jack_new(void) -{ - struct jack_data *ret = g_new(struct jack_data, 1); - - ret->ringbuffer_size = 32768; - - return ret; -} - static void mpd_jack_client_free(struct jack_data *jd) { @@ -188,12 +178,10 @@ mpd_jack_init(struct audio_output *ao, struct jack_data *jd; const char *value; - jd = mpd_jack_new(); + jd = g_new(struct jack_data, 1); jd->ao = ao; g_debug("mpd_jack_init (pid=%d)", getpid()); - if (param == NULL) - return jd; value = config_get_block_string(param, "ports", NULL); if (value != NULL) { diff --git a/src/output/oss_plugin.c b/src/output/oss_plugin.c index b27aa1b77..b80024b29 100644 --- a/src/output/oss_plugin.c +++ b/src/output/oss_plugin.c @@ -392,16 +392,14 @@ oss_initDriver(G_GNUC_UNUSED struct audio_output *audioOutput, G_GNUC_UNUSED const struct audio_format *audio_format, const struct config_param *param) { - if (param) { - const char *device = - config_get_block_string(param, "device", NULL); - if (device != NULL) { - OssData *od = newOssData(); - od->device = device; - mixer_configure(&od->mixer, param); - return od; - } + const char *device = config_get_block_string(param, "device", NULL); + if (device != NULL) { + OssData *od = newOssData(); + od->device = device; + mixer_configure(&od->mixer, param); + return od; } + return oss_open_default(param); } -- cgit v1.2.3