Commit 113109f8392b609a32534e488edaf82fa4d07cda

pionere 2022-01-19T17:18:47

cleanup SDL_GetAudioDeviceName - drop unnecessary hascapture check - call SDL_InvalidParamError in case the index is out of range

diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c
index 6b325a3..028debd 100644
--- a/src/audio/SDL_audio.c
+++ b/src/audio/SDL_audio.c
@@ -1081,38 +1081,29 @@ SDL_GetNumAudioDevices(int iscapture)
 const char *
 SDL_GetAudioDeviceName(int index, int iscapture)
 {
-    const char *retval = NULL;
+    SDL_AudioDeviceItem *item;
+    int i;
+    const char *retval;
 
     if (!SDL_GetCurrentAudioDriver()) {
         SDL_SetError("Audio subsystem is not initialized");
         return NULL;
     }
 
-    if (iscapture && !current_audio.impl.HasCaptureSupport) {
-        SDL_SetError("No capture support");
-        return NULL;
-    }
-
-    if (index >= 0) {
-        SDL_AudioDeviceItem *item;
-        int i;
-
-        SDL_LockMutex(current_audio.detectionLock);
-        item = iscapture ? current_audio.inputDevices : current_audio.outputDevices;
-        i = iscapture ? current_audio.inputDeviceCount : current_audio.outputDeviceCount;
-        if (index < i) {
-            for (i--; i > index; i--, item = item->next) {
-                SDL_assert(item != NULL);
-            }
+    SDL_LockMutex(current_audio.detectionLock);
+    item = iscapture ? current_audio.inputDevices : current_audio.outputDevices;
+    i = iscapture ? current_audio.inputDeviceCount : current_audio.outputDeviceCount;
+    if (index >= 0 && index < i) {
+        for (i--; i > index; i--, item = item->next) {
             SDL_assert(item != NULL);
-            retval = item->name;
         }
-        SDL_UnlockMutex(current_audio.detectionLock);
-    }
-
-    if (retval == NULL) {
-        SDL_SetError("No such device");
+        SDL_assert(item != NULL);
+        retval = item->name;
+    } else {
+        SDL_InvalidParamError("index");
+        retval = NULL;
     }
+    SDL_UnlockMutex(current_audio.detectionLock);
 
     return retval;
 }