summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorStefano Pigozzi <stefano.pigozzi@gmail.com>2015-02-02 23:01:11 +0100
committerStefano Pigozzi <stefano.pigozzi@gmail.com>2015-02-03 00:40:02 +0100
commita3be14683a33211e3e07094246bb3342fc789763 (patch)
tree1db9298908cffa8906f076b4eec39858e49acb35 /audio
parentdd287a3276153ec4e43567ed0eddba7d595168cf (diff)
downloadmpv-a3be14683a33211e3e07094246bb3342fc789763.tar.bz2
mpv-a3be14683a33211e3e07094246bb3342fc789763.tar.xz
command: add property returning detected audio device
This can be useful to adjust some other audio related properties at runtime depending on the audio device being used.
Diffstat (limited to 'audio')
-rw-r--r--audio/out/ao.c5
-rw-r--r--audio/out/ao.h1
-rw-r--r--audio/out/ao_coreaudio.c2
-rw-r--r--audio/out/internal.h3
4 files changed, 11 insertions, 0 deletions
diff --git a/audio/out/ao.c b/audio/out/ao.c
index f77ae4c24a..dbdcf272cb 100644
--- a/audio/out/ao.c
+++ b/audio/out/ao.c
@@ -440,6 +440,11 @@ bool ao_untimed(struct ao *ao)
return ao->untimed;
}
+const char *ao_get_detected_device(struct ao *ao)
+{
+ return ao->detected_device;
+}
+
struct ao_device_list *ao_get_device_list(struct mpv_global *global)
{
struct ao_device_list *list = talloc_zero(NULL, struct ao_device_list);
diff --git a/audio/out/ao.h b/audio/out/ao.h
index f1c922ae69..dbbed24873 100644
--- a/audio/out/ao.h
+++ b/audio/out/ao.h
@@ -79,6 +79,7 @@ void ao_uninit(struct ao *ao);
void ao_get_format(struct ao *ao, struct mp_audio *format);
const char *ao_get_name(struct ao *ao);
const char *ao_get_description(struct ao *ao);
+const char *ao_get_detected_device(struct ao *ao);
bool ao_untimed(struct ao *ao);
int ao_play(struct ao *ao, void **data, int samples, int flags);
int ao_control(struct ao *ao, enum aocontrol cmd, void *arg);
diff --git a/audio/out/ao_coreaudio.c b/audio/out/ao_coreaudio.c
index 0c7f769e72..590549bd1a 100644
--- a/audio/out/ao_coreaudio.c
+++ b/audio/out/ao_coreaudio.c
@@ -156,6 +156,8 @@ static int init(struct ao *ao)
OSStatus err = ca_select_device(ao, ao->device, &p->device);
CHECK_CA_ERROR("failed to select device");
+ ao->detected_device = talloc_asprintf(ao, "%d", p->device);
+
if (!init_chmap(ao))
goto coreaudio_error;
diff --git a/audio/out/internal.h b/audio/out/internal.h
index 4d18adef78..9414208923 100644
--- a/audio/out/internal.h
+++ b/audio/out/internal.h
@@ -50,6 +50,9 @@ struct ao {
// default device should be used, this is set to NULL.
char *device;
+ // Device actually chosen by the AO
+ char *detected_device;
+
// Application name to report to the audio API.
char *client_name;