summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-11-14 13:41:25 +0100
committerwm4 <wm4@nowhere>2016-11-14 13:42:49 +0100
commitc1ae1def85846584c04525d8dbb061191f08ff2d (patch)
tree219bd2aba3fe3031aa42a6e34210e4466ec2bfb4 /audio
parenta2b93e0c275931532dc15c2cf6a5ebeafec9ed6c (diff)
downloadmpv-c1ae1def85846584c04525d8dbb061191f08ff2d.tar.bz2
mpv-c1ae1def85846584c04525d8dbb061191f08ff2d.tar.xz
ao_alsa: explicitly add default device manually
The "default" entry (which is and always was mpv/mplayer's default) does not have a description set in the ALSA API. (While "sysdefault" strangely has.) Instead of an empty description, this should show something nice, so reuse the ao.c code for naming default devices (see previous commit). It's still a bit ugly that audio-device-list will have a default entry for "Autoselect device" and "Default (alsa)", but then again we probably want to allow the user to force ALSA (i.e. prevent fallbacks to other AOs) just because ALSA is so flaky and makes this a legitimate feature.
Diffstat (limited to 'audio')
-rw-r--r--audio/out/ao_alsa.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/audio/out/ao_alsa.c b/audio/out/ao_alsa.c
index f30417ff68..201557697d 100644
--- a/audio/out/ao_alsa.c
+++ b/audio/out/ao_alsa.c
@@ -1145,7 +1145,8 @@ static bool is_useless_device(char *name)
{
char *crap[] = {"front", "rear", "center_lfe", "side", "surround21",
"surround40", "surround41", "surround50", "surround51", "surround71",
- "sysdefault", "pulse", "null", "dsnoop", "dmix", "hw", "iec958"};
+ "sysdefault", "pulse", "null", "dsnoop", "dmix", "hw", "iec958",
+ "default"};
for (int i = 0; i < MP_ARRAY_SIZE(crap); i++) {
int l = strlen(crap[i]);
if (name && strncmp(name, crap[i], l) == 0 &&
@@ -1161,6 +1162,8 @@ static void list_devs(struct ao *ao, struct ao_device_list *list)
if (snd_device_name_hint(-1, "pcm", &hints) < 0)
return;
+ ao_device_list_add(list, ao, &(struct ao_device_desc){"", ""});
+
for (int n = 0; hints[n]; n++) {
char *name = snd_device_name_get_hint(hints[n], "NAME");
char *desc = snd_device_name_get_hint(hints[n], "DESC");