From b1bdd7c89f285649e5a3af2dbe68b358accf47eb Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Fri, 15 Feb 2008 21:48:00 -0800 Subject: [PATCH] Add the first card after making sure there's a useable device on it --- Alc/alsa.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Alc/alsa.c b/Alc/alsa.c index 09727ba9..fa655386 100644 --- a/Alc/alsa.c +++ b/Alc/alsa.c @@ -789,6 +789,8 @@ LOAD_FUNC(snd_card_next); } while (card >= 0) { + int firstDev = 1; + sprintf(name, "hw:%d", card); if ((err = psnd_ctl_open(&handle, name, 0)) < 0) { AL_PRINT("control open (%i): %s\n", card, psnd_strerror(err)); @@ -799,11 +801,6 @@ LOAD_FUNC(snd_card_next); psnd_ctl_close(handle); goto next_card; } - if(card < MAX_DEVICES-1) { - snprintf(name, sizeof(name), "ALSA Software on %s", - psnd_ctl_card_info_get_name(info)); - alsaDeviceList[card+1] = AppendDeviceList(name); - } dev = -1; while (idx < MAX_ALL_DEVICES) { @@ -813,6 +810,14 @@ LOAD_FUNC(snd_card_next); AL_PRINT("snd_ctl_pcm_next_device failed\n"); if (dev < 0) break; + + if(firstDev && card < MAX_DEVICES-1) { + firstDev = 0; + snprintf(name, sizeof(name), "ALSA Software on %s", + psnd_ctl_card_info_get_name(info)); + alsaDeviceList[card+1] = AppendDeviceList(name); + } + psnd_pcm_info_set_device(pcminfo, dev); psnd_pcm_info_set_subdevice(pcminfo, 0); psnd_pcm_info_set_stream(pcminfo, stream); -- 2.11.4.GIT