diff options
author | Max Kellermann <max@duempel.org> | 2009-03-20 15:47:50 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-03-20 15:47:50 +0100 |
commit | e6c753a474bcf1d81127f74762f8b7f913dd3160 (patch) | |
tree | 37bce87b2de1f2ee7d40c28074a53c423c7a6789 | |
parent | 67e65a7959be0e3dee2fd2023a2c23217c50c1d8 (diff) | |
download | mpd-e6c753a474bcf1d81127f74762f8b7f913dd3160.tar.gz mpd-e6c753a474bcf1d81127f74762f8b7f913dd3160.tar.xz mpd-e6c753a474bcf1d81127f74762f8b7f913dd3160.zip |
output: convert audio_output.config_audio_format to boolean
The config_audio_format used to contain the configured audio format,
which is copied to out_audio_format. Let's convert the former to a
boolean, which indicates whether out_audio_format was already set.
This simplifies some code and saves a few bytes.
-rw-r--r-- | src/output_control.c | 14 | ||||
-rw-r--r-- | src/output_init.c | 11 | ||||
-rw-r--r-- | src/output_internal.h | 12 |
3 files changed, 17 insertions, 20 deletions
diff --git a/src/output_control.c b/src/output_control.c index 25365d324..9a240ffe4 100644 --- a/src/output_control.c +++ b/src/output_control.c @@ -78,16 +78,12 @@ audio_output_open(struct audio_output *ao, ao->in_audio_format = *audio_format; ao->chunk = NULL; - if (audio_format_defined(&ao->config_audio_format)) { - /* copy config_audio_format to out_audio_format only if the - device is not yet open; if it is already open, - plugin->open() may have modified out_audio_format, - and the value is already ok */ - if (!ao->open) - ao->out_audio_format = - ao->config_audio_format; - } else { + if (!ao->config_audio_format) { + /* no audio format is configured: copy in->out, let + the output's open() method determine the effective + out_audio_format */ ao->out_audio_format = ao->in_audio_format; + if (ao->open) audio_output_close(ao); } diff --git a/src/output_init.c b/src/output_init.c index 7f7ad353d..f837ba8b8 100644 --- a/src/output_init.c +++ b/src/output_init.c @@ -112,15 +112,15 @@ audio_output_init(struct audio_output *ao, const struct config_param *param, pcm_convert_init(&ao->convert_state); - if (format) { + ao->config_audio_format = format != NULL; + if (ao->config_audio_format) { bool ret; - ret = audio_format_parse(&ao->config_audio_format, format, + ret = audio_format_parse(&ao->out_audio_format, format, error); if (!ret) return false; - } else - audio_format_clear(&ao->config_audio_format); + } ao->thread = NULL; notify_init(&ao->notify); @@ -128,7 +128,8 @@ audio_output_init(struct audio_output *ao, const struct config_param *param, ao->mutex = g_mutex_new(); ao->data = ao_plugin_init(plugin, - format ? &ao->config_audio_format : NULL, + ao->config_audio_format + ? &ao->out_audio_format : NULL, param, error); if (ao->data == NULL) return false; diff --git a/src/output_internal.h b/src/output_internal.h index 017744a81..3ec0485b2 100644 --- a/src/output_internal.h +++ b/src/output_internal.h @@ -53,6 +53,12 @@ struct audio_output { void *data; /** + * This flag is true, when the audio_format of this device is + * configured in mpd.conf. + */ + bool config_audio_format; + + /** * Has the user enabled this device? */ bool enabled; @@ -83,12 +89,6 @@ struct audio_output { */ struct audio_format out_audio_format; - /** - * The audio_format which was configured. Only set if - * convertAudioFormat is true. - */ - struct audio_format config_audio_format; - struct pcm_convert_state convert_state; /** |