Merge commit 'e7e519a466167b7a3ef9aa9b28535e436139936a' into main
diff --git a/src/audio/dsp/SDL_dspaudio.c b/src/audio/dsp/SDL_dspaudio.c
index 1622c6f..2124dcc 100644
--- a/src/audio/dsp/SDL_dspaudio.c
+++ b/src/audio/dsp/SDL_dspaudio.c
@@ -292,9 +292,24 @@ DSP_FlushCapture(_THIS)
}
}
+static SDL_bool InitTimeDevicesExist = SDL_FALSE;
+static int
+look_for_devices_test(int fd)
+{
+ InitTimeDevicesExist = SDL_TRUE; /* note that _something_ exists. */
+ /* Don't add to the device list, we're just seeing if any devices exist. */
+ return 0;
+}
+
static int
DSP_Init(SDL_AudioDriverImpl * impl)
{
+ InitTimeDevicesExist = SDL_FALSE;
+ SDL_EnumUnixAudioDevices(0, look_for_devices_test);
+ if (!InitTimeDevicesExist) {
+ return 0; /* maybe try a different backend. */
+ }
+
/* Set the function pointers */
impl->DetectDevices = DSP_DetectDevices;
impl->OpenDevice = DSP_OpenDevice;