aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-02-10 17:21:19 +0100
committerMax Kellermann <max@duempel.org>2009-02-10 17:21:19 +0100
commite8787ac4a4430bb30bfba0b5154111370e89133b (patch)
treee24f22b7d9d4b04ea7ef06b167c7862bc079b26b /src
parent3e87033145fc090f147d17b0bde1bc5e0e61baab (diff)
downloadmpd-e8787ac4a4430bb30bfba0b5154111370e89133b.tar.gz
mpd-e8787ac4a4430bb30bfba0b5154111370e89133b.tar.xz
mpd-e8787ac4a4430bb30bfba0b5154111370e89133b.zip
audio: added output enumeration functions
Added audio_output_get(), audio_output_find().
Diffstat (limited to 'src')
-rw-r--r--src/audio.c22
-rw-r--r--src/audio.h13
2 files changed, 35 insertions, 0 deletions
diff --git a/src/audio.c b/src/audio.c
index 7f51a31d9..c0ead9ddc 100644
--- a/src/audio.c
+++ b/src/audio.c
@@ -45,6 +45,28 @@ unsigned int audio_output_count(void)
return audioOutputArraySize;
}
+struct audio_output *
+audio_output_get(unsigned i)
+{
+ assert(i < audioOutputArraySize);
+
+ return &audioOutputArray[i];
+}
+
+struct audio_output *
+audio_output_find(const char *name)
+{
+ for (unsigned i = 0; i < audioOutputArraySize; ++i) {
+ struct audio_output *ao = audio_output_get(i);
+
+ if (strcmp(ao->name, name) == 0)
+ return ao;
+ }
+
+ /* name not found */
+ return NULL;
+}
+
static unsigned
audio_output_config_count(void)
{
diff --git a/src/audio.h b/src/audio.h
index c42d27d5e..2bffa7d41 100644
--- a/src/audio.h
+++ b/src/audio.h
@@ -35,6 +35,19 @@ struct config_param;
*/
unsigned int audio_output_count(void);
+/**
+ * Returns the "i"th audio output device.
+ */
+struct audio_output *
+audio_output_get(unsigned i);
+
+/**
+ * Returns the audio output device with the specified name. Returns
+ * NULL if the name does not exist.
+ */
+struct audio_output *
+audio_output_find(const char *name);
+
void getOutputAudioFormat(const struct audio_format *inFormat,
struct audio_format *outFormat);