Fixed bug 3484 - DSP driver does not detect /dev/dsp0 Tobias Kortkamp using SDL 2.0.5 (and a repository checkout) on FreeBSD 11.0 I get this output from testaudioinfo with SDL_AUDIODRIVER=dsp: INFO: Found 8 output devices: INFO: 0: /dev/dsp INFO: 1: /dev/dsp1 INFO: 2: /dev/dsp2 INFO: 3: /dev/dsp3 INFO: 4: /dev/dsp4 INFO: 5: /dev/dsp5 INFO: 6: /dev/dsp6 INFO: 7: /dev/dsp7 INFO: INFO: Found 3 capture devices: INFO: 0: /dev/dsp INFO: 1: /dev/dsp4 INFO: 2: /dev/dsp5 INFO: This is /dev/sndstat: Installed devices: pcm0: <NVIDIA (0x0040) (HDMI/DP 8ch)> (play) pcm1: <NVIDIA (0x0040) (HDMI/DP 8ch)> (play) pcm2: <NVIDIA (0x0040) (HDMI/DP 8ch)> (play) pcm3: <NVIDIA (0x0040) (HDMI/DP 8ch)> (play) pcm4: <Realtek ALC887 (Rear Analog 7.1/2.0)> (play/rec) pcm5: <Realtek ALC887 (Front Analog)> (play/rec) default pcm6: <Realtek ALC887 (Rear Digital)> (play) pcm7: <Realtek ALC887 (Onboard Digital)> (play) No devices installed from userspace. I'd expect to find /dev/dsp0 in the output device list. It's not detected because of a a small logic error in SDL_audiodev.c (see attached patch). With the patch applied I get this which is what I'd expect: INFO: Found 9 output devices: INFO: 0: /dev/dsp INFO: 1: /dev/dsp0 INFO: 2: /dev/dsp1 INFO: 3: /dev/dsp2 INFO: 4: /dev/dsp3 INFO: 5: /dev/dsp4 INFO: 6: /dev/dsp5 INFO: 7: /dev/dsp6 INFO: 8: /dev/dsp7
diff --git a/src/audio/SDL_audiodev.c b/src/audio/SDL_audiodev.c
index 5c392cf..bd3c0b9 100644
--- a/src/audio/SDL_audiodev.c
+++ b/src/audio/SDL_audiodev.c
@@ -103,9 +103,10 @@ SDL_EnumUnixAudioDevices_Internal(const int iscapture, const int classic, int (*
if (SDL_strlen(audiodev) < (sizeof(audiopath) - 3)) {
int instance = 0;
- while (instance++ <= 64) {
+ while (instance <= 64) {
SDL_snprintf(audiopath, SDL_arraysize(audiopath),
"%s%d", audiodev, instance);
+ instance++;
test_device(iscapture, audiopath, flags, test);
}
}