From cfa95fe68c68357ab631058469a090918c224cf3 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Mon, 15 Aug 2016 10:09:41 -0400 Subject: [PATCH] alsa: don't enumerate virtual devices, just physical hardware. --- src/audio/alsa/SDL_alsa_audio.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/audio/alsa/SDL_alsa_audio.c b/src/audio/alsa/SDL_alsa_audio.c index 1a84380f2..2b65e13fc 100644 --- a/src/audio/alsa/SDL_alsa_audio.c +++ b/src/audio/alsa/SDL_alsa_audio.c @@ -714,12 +714,15 @@ ALSA_DetectDevices(void) char *desc = ALSA_snd_device_name_get_hint(hints[i], "DESC"); char *ioid = ALSA_snd_device_name_get_hint(hints[i], "IOID"); - if ((ioid == NULL) || (SDL_strcmp(ioid, "Output") == 0)) { - add_device(SDL_FALSE, name, desc); - } + /* only want physical hardware interfaces */ + if (SDL_strncmp(name, "hw:", 3) == 0) { + if ((ioid == NULL) || (SDL_strcmp(ioid, "Output") == 0)) { + add_device(SDL_FALSE, name, desc); + } - if ((ioid == NULL) || (SDL_strcmp(ioid, "Input") == 0)) { - add_device(SDL_TRUE, name, desc); + if ((ioid == NULL) || (SDL_strcmp(ioid, "Input") == 0)) { + add_device(SDL_TRUE, name, desc); + } } free(name);