From d92543698c8d5ffa0c1adec4da343e5d7ab65d02 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 10 Sep 2008 11:43:27 +0200 Subject: [PATCH] audio_format: added audio_format_clear() and audio_format_defined() audio_format_clear() sets an audio_format struct to an cleared (undefined) state, which is both faster and smaller than memset(0). audio_format_defined() checks if the audio_format struct actually has a defined value (i.e. non-zero). Both can be used to avoid pointers to audio_format, replacing the "NULL" value with an "undefined" audio_format. --- src/audio.c | 2 +- src/audio_format.h | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/audio.c b/src/audio.c index 839052dc2..dead45991 100644 --- a/src/audio.c +++ b/src/audio.c @@ -231,7 +231,7 @@ static void syncAudioDeviceStates(void) struct audio_output *audioOutput; unsigned int i; - if (!audio_format.channels) + if (!audio_format_defined(&audio_format)) return; for (i = 0; i < audioOutputArraySize; ++i) { diff --git a/src/audio_format.h b/src/audio_format.h index 1cfb258ae..d2461a338 100644 --- a/src/audio_format.h +++ b/src/audio_format.h @@ -27,6 +27,18 @@ struct audio_format { mpd_sint8 channels; }; +static inline void audio_format_clear(struct audio_format *af) +{ + af->sampleRate = 0; + af->bits = 0; + af->channels = 0; +} + +static inline int audio_format_defined(const struct audio_format *af) +{ + return af->sampleRate != 0; +} + static inline int audio_format_equals(const struct audio_format *a, const struct audio_format *b) {