changeset 3804:b12b7ec0dfcc SDL-ryan-multiple-audio-device

Removed an if (), which lets this code section be a little less cluttered...
author Ryan C. Gordon <icculus@icculus.org>
date Wed, 04 Oct 2006 22:16:46 +0000
parents 3decf9cdeb63
children ef7f7be318da
files src/audio/SDL_audio.c src/audio/SDL_sysaudio.h
diffstat 2 files changed, 23 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/src/audio/SDL_audio.c	Wed Oct 04 22:10:09 2006 +0000
+++ b/src/audio/SDL_audio.c	Wed Oct 04 22:16:46 2006 +0000
@@ -375,40 +375,39 @@
         driver_name = SDL_getenv("SDL_AUDIODRIVER");
     }
 
-    if (!initialized) {
-        if (driver_name != NULL) {
-            for (i = 0; bootstrap[i]; ++i) {
-                if (SDL_strcasecmp(bootstrap[i]->name, driver_name) == 0) {
-                    if (bootstrap[i]->available()) {
-                        SDL_memset(&current_audio, 0, sizeof (current_audio));
-                        current_audio.name = bootstrap[i]->name;
-                        current_audio.desc = bootstrap[i]->desc;
-                        initialized = bootstrap[i]->init(&current_audio.impl);
-                    }
-                    break;
-                }
-            }
-        } else {
-            for (i = 0; (!initialized) && (bootstrap[i]); ++i) {
-                if ((!bootstrap[i]->demand) && (bootstrap[i]->available())) {
+    if (driver_name != NULL) {
+        for (i = 0; bootstrap[i]; ++i) {
+            if (SDL_strcasecmp(bootstrap[i]->name, driver_name) == 0) {
+                if (bootstrap[i]->available()) {
                     SDL_memset(&current_audio, 0, sizeof (current_audio));
                     current_audio.name = bootstrap[i]->name;
                     current_audio.desc = bootstrap[i]->desc;
                     initialized = bootstrap[i]->init(&current_audio.impl);
                 }
+                break;
             }
         }
-        if (!initialized) {
-            if (driver_name) {
-                SDL_SetError("%s not available", driver_name);
-            } else {
-                SDL_SetError("No available audio device");
+    } else {
+        for (i = 0; (!initialized) && (bootstrap[i]); ++i) {
+            if ((!bootstrap[i]->demand_only) && (bootstrap[i]->available())) {
+                SDL_memset(&current_audio, 0, sizeof (current_audio));
+                current_audio.name = bootstrap[i]->name;
+                current_audio.desc = bootstrap[i]->desc;
+                initialized = bootstrap[i]->init(&current_audio.impl);
             }
-            SDL_memset(&current_audio, 0, sizeof (current_audio));
-            return (-1);  /* No driver was available, so fail. */
         }
     }
 
+    if (!initialized) {
+        if (driver_name) {
+            SDL_SetError("%s not available", driver_name);
+        } else {
+            SDL_SetError("No available audio device");
+        }
+        SDL_memset(&current_audio, 0, sizeof (current_audio));
+        return (-1);  /* No driver was available, so fail. */
+    }
+
     finalize_audio_entry_points();
 
     return (0);
--- a/src/audio/SDL_sysaudio.h	Wed Oct 04 22:10:09 2006 +0000
+++ b/src/audio/SDL_sysaudio.h	Wed Oct 04 22:16:46 2006 +0000
@@ -109,7 +109,7 @@
     const char *desc;
     int (*available) (void);
     int (*init) (SDL_AudioDriverImpl *impl);
-    int demand:1;  /* 1==must request explicitly, or it won't be available. */
+    int demand_only:1;  /* 1==request explicitly, or it won't be available. */
 } AudioBootStrap;
 
 #endif /* _SDL_sysaudio_h */