aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);