Browse Source

audio: rename fake_stream to work_buffer.

It's more than an alternative for when the OS can't provide a DMA buffer, now.
Ryan C. Gordon 8 years ago
parent
commit
b3e8db802e

+ 16 - 17
src/audio/SDL_audio.c

@@ -568,16 +568,16 @@ SDL_RunAudio(void *devicep)
             stream = current_audio.impl.GetDeviceBuf(device);
             stream = current_audio.impl.GetDeviceBuf(device);
         } else {
         } else {
             /* if the device isn't enabled, we still write to the
             /* if the device isn't enabled, we still write to the
-               fake_stream, so the app's callback will fire with
+               work_buffer, so the app's callback will fire with
                a regular frequency, in case they depend on that
                a regular frequency, in case they depend on that
                for timing or progress. They can use hotplug
                for timing or progress. They can use hotplug
                now to know if the device failed.
                now to know if the device failed.
-               Streaming playback uses fake_stream as a work buffer, too. */
+               Streaming playback uses work_buffer, too. */
             stream = NULL;
             stream = NULL;
         }
         }
 
 
         if (stream == NULL) {
         if (stream == NULL) {
-            stream = device->fake_stream;
+            stream = device->work_buffer;
         }
         }
 
 
         if ( SDL_AtomicGet(&device->enabled) ) {
         if ( SDL_AtomicGet(&device->enabled) ) {
@@ -614,7 +614,7 @@ SDL_RunAudio(void *devicep)
                     current_audio.impl.WaitDevice(device);
                     current_audio.impl.WaitDevice(device);
                 }
                 }
             }
             }
-        } else if (stream == device->fake_stream) {
+        } else if (stream == device->work_buffer) {
             /* nothing to do; pause like we queued a buffer to play. */
             /* nothing to do; pause like we queued a buffer to play. */
             SDL_Delay(delay);
             SDL_Delay(delay);
         } else {  /* writing directly to the device. */
         } else {  /* writing directly to the device. */
@@ -670,8 +670,8 @@ SDL_CaptureAudio(void *devicep)
         /* Fill the current buffer with sound */
         /* Fill the current buffer with sound */
         still_need = stream_len;
         still_need = stream_len;
 
 
-        /* just use the "fake" stream to hold data read from the device. */
-        stream = device->fake_stream;
+        /* Use the work_buffer to hold data read from the device. */
+        stream = device->work_buffer;
         SDL_assert(stream != NULL);
         SDL_assert(stream != NULL);
 
 
         ptr = stream;
         ptr = stream;
@@ -702,16 +702,16 @@ SDL_CaptureAudio(void *devicep)
             SDL_AudioStreamPut(device->stream, stream, stream_len);
             SDL_AudioStreamPut(device->stream, stream, stream_len);
 
 
             while (SDL_AudioStreamAvailable(device->stream) >= ((int) device->callbackspec.size)) {
             while (SDL_AudioStreamAvailable(device->stream) >= ((int) device->callbackspec.size)) {
-                const int got = SDL_AudioStreamGet(device->stream, device->fake_stream, device->callbackspec.size);
+                const int got = SDL_AudioStreamGet(device->stream, device->work_buffer, device->callbackspec.size);
                 SDL_assert((got < 0) || (got == device->callbackspec.size));
                 SDL_assert((got < 0) || (got == device->callbackspec.size));
                 if (got != device->callbackspec.size) {
                 if (got != device->callbackspec.size) {
-                    SDL_memset(device->fake_stream, device->spec.silence, device->callbackspec.size);
+                    SDL_memset(device->work_buffer, device->spec.silence, device->callbackspec.size);
                 }
                 }
 
 
                 /* !!! FIXME: this should be LockDevice. */
                 /* !!! FIXME: this should be LockDevice. */
                 SDL_LockMutex(device->mixer_lock);
                 SDL_LockMutex(device->mixer_lock);
                 if (!SDL_AtomicGet(&device->paused)) {
                 if (!SDL_AtomicGet(&device->paused)) {
-                    callback(udata, device->fake_stream, device->callbackspec.size);
+                    callback(udata, device->work_buffer, device->callbackspec.size);
                 }
                 }
                 SDL_UnlockMutex(device->mixer_lock);
                 SDL_UnlockMutex(device->mixer_lock);
             }
             }
@@ -958,7 +958,7 @@ close_audio_device(SDL_AudioDevice * device)
         SDL_DestroyMutex(device->mixer_lock);
         SDL_DestroyMutex(device->mixer_lock);
     }
     }
 
 
-    SDL_free(device->fake_stream);
+    SDL_free(device->work_buffer);
     SDL_FreeAudioStream(device->stream);
     SDL_FreeAudioStream(device->stream);
 
 
     if (device->hidden != NULL) {
     if (device->hidden != NULL) {
@@ -1243,16 +1243,15 @@ open_audio_device(const char *devname, int iscapture,
         device->spec.userdata = device;
         device->spec.userdata = device;
     }
     }
 
 
-    /* !!! FIXME: rename this from fake_stream */
     /* Allocate a scratch audio buffer */
     /* Allocate a scratch audio buffer */
-    device->fake_stream_len = build_stream ? device->callbackspec.size : 0;
-    if (device->spec.size > device->fake_stream_len) {
-        device->fake_stream_len = device->spec.size;
+    device->work_buffer_len = build_stream ? device->callbackspec.size : 0;
+    if (device->spec.size > device->work_buffer_len) {
+        device->work_buffer_len = device->spec.size;
     }
     }
-    SDL_assert(device->fake_stream_len > 0);
+    SDL_assert(device->work_buffer_len > 0);
 
 
-    device->fake_stream = (Uint8 *) SDL_malloc(device->fake_stream_len);
-    if (device->fake_stream == NULL) {
+    device->work_buffer = (Uint8 *) SDL_malloc(device->work_buffer_len);
+    if (device->work_buffer == NULL) {
         close_audio_device(device);
         close_audio_device(device);
         SDL_OutOfMemory();
         SDL_OutOfMemory();
         return 0;
         return 0;

+ 4 - 4
src/audio/SDL_sysaudio.h

@@ -146,11 +146,11 @@ struct SDL_AudioDevice
     SDL_atomic_t paused;
     SDL_atomic_t paused;
     SDL_bool iscapture;
     SDL_bool iscapture;
 
 
-    /* Fake audio buffer for when the audio hardware is busy */
-    Uint8 *fake_stream;
+    /* Scratch buffer used in the bridge between SDL and the user callback. */
+    Uint8 *work_buffer;
 
 
-    /* Size, in bytes, of fake_stream. */
-    Uint32 fake_stream_len;
+    /* Size, in bytes, of work_buffer. */
+    Uint32 work_buffer_len;
 
 
     /* A mutex for locking the mixing buffers */
     /* A mutex for locking the mixing buffers */
     SDL_mutex *mixer_lock;
     SDL_mutex *mixer_lock;

+ 12 - 12
src/audio/emscripten/SDL_emscriptenaudio.c

@@ -65,26 +65,26 @@ HandleAudioProcess(_THIS)
 
 
     if (this->stream == NULL) {  /* no conversion necessary. */
     if (this->stream == NULL) {  /* no conversion necessary. */
         SDL_assert(this->spec.size == stream_len);
         SDL_assert(this->spec.size == stream_len);
-        callback(this->spec.userdata, this->fake_stream, stream_len);
+        callback(this->spec.userdata, this->work_buffer, stream_len);
     } else {  /* streaming/converting */
     } else {  /* streaming/converting */
         int got;
         int got;
         while (SDL_AudioStreamAvailable(this->stream) < ((int) this->spec.size)) {
         while (SDL_AudioStreamAvailable(this->stream) < ((int) this->spec.size)) {
-            callback(this->spec.userdata, this->fake_stream, stream_len);
-            if (SDL_AudioStreamPut(this->stream, this->fake_stream, stream_len) == -1) {
+            callback(this->spec.userdata, this->work_buffer, stream_len);
+            if (SDL_AudioStreamPut(this->stream, this->work_buffer, stream_len) == -1) {
                 SDL_AudioStreamClear(this->stream);
                 SDL_AudioStreamClear(this->stream);
                 SDL_AtomicSet(&this->enabled, 0);
                 SDL_AtomicSet(&this->enabled, 0);
                 break;
                 break;
             }
             }
         }
         }
 
 
-        got = SDL_AudioStreamGet(this->stream, this->fake_stream, this->spec.size);
+        got = SDL_AudioStreamGet(this->stream, this->work_buffer, this->spec.size);
         SDL_assert((got < 0) || (got == this->spec.size));
         SDL_assert((got < 0) || (got == this->spec.size));
         if (got != this->spec.size) {
         if (got != this->spec.size) {
-            SDL_memset(this->fake_stream, this->spec.silence, this->spec.size);
+            SDL_memset(this->work_buffer, this->spec.silence, this->spec.size);
         }
         }
     }
     }
 
 
-    FeedAudioDevice(this, this->fake_stream, this->spec.size);
+    FeedAudioDevice(this, this->work_buffer, this->spec.size);
 }
 }
 
 
 static void
 static void
@@ -117,25 +117,25 @@ HandleCaptureProcess(_THIS)
                 }
                 }
             }
             }
         }
         }
-    }, this->fake_stream, (this->spec.size / sizeof (float)) / this->spec.channels);
+    }, this->work_buffer, (this->spec.size / sizeof (float)) / this->spec.channels);
 
 
     /* okay, we've got an interleaved float32 array in C now. */
     /* okay, we've got an interleaved float32 array in C now. */
 
 
     if (this->stream == NULL) {  /* no conversion necessary. */
     if (this->stream == NULL) {  /* no conversion necessary. */
         SDL_assert(this->spec.size == stream_len);
         SDL_assert(this->spec.size == stream_len);
-        callback(this->spec.userdata, this->fake_stream, stream_len);
+        callback(this->spec.userdata, this->work_buffer, stream_len);
     } else {  /* streaming/converting */
     } else {  /* streaming/converting */
-        if (SDL_AudioStreamPut(this->stream, this->fake_stream, this->spec.size) == -1) {
+        if (SDL_AudioStreamPut(this->stream, this->work_buffer, this->spec.size) == -1) {
             SDL_AtomicSet(&this->enabled, 0);
             SDL_AtomicSet(&this->enabled, 0);
         }
         }
 
 
         while (SDL_AudioStreamAvailable(this->stream) >= stream_len) {
         while (SDL_AudioStreamAvailable(this->stream) >= stream_len) {
-            const int got = SDL_AudioStreamGet(this->stream, this->fake_stream, stream_len);
+            const int got = SDL_AudioStreamGet(this->stream, this->work_buffer, stream_len);
             SDL_assert((got < 0) || (got == stream_len));
             SDL_assert((got < 0) || (got == stream_len));
             if (got != stream_len) {
             if (got != stream_len) {
-                SDL_memset(this->fake_stream, this->callbackspec.silence, stream_len);
+                SDL_memset(this->work_buffer, this->callbackspec.silence, stream_len);
             }
             }
-            callback(this->spec.userdata, this->fake_stream, stream_len);  /* Send it to the app. */
+            callback(this->spec.userdata, this->work_buffer, stream_len);  /* Send it to the app. */
         }
         }
     }
     }
 }
 }

+ 2 - 2
src/audio/haiku/SDL_haikuaudio.cc

@@ -69,8 +69,8 @@ FillSound(void *device, void *stream, size_t len,
         const int stream_len = audio->callbackspec.size;
         const int stream_len = audio->callbackspec.size;
         const int ilen = (int) len;
         const int ilen = (int) len;
         while (SDL_AudioStreamAvailable(audio->stream) < ilen) {
         while (SDL_AudioStreamAvailable(audio->stream) < ilen) {
-            callback(audio->spec.userdata, audio->fake_stream, stream_len);
-            if (SDL_AudioStreamPut(audio->stream, audio->fake_stream, stream_len) == -1) {
+            callback(audio->spec.userdata, audio->work_buffer, stream_len);
+            if (SDL_AudioStreamPut(audio->stream, audio->work_buffer, stream_len) == -1) {
                 SDL_AudioStreamClear(audio->stream);
                 SDL_AudioStreamClear(audio->stream);
                 SDL_AtomicSet(&audio->enabled, 0);
                 SDL_AtomicSet(&audio->enabled, 0);
                 break;
                 break;

+ 2 - 2
src/audio/nacl/SDL_naclaudio.c

@@ -70,8 +70,8 @@ static void nacl_audio_callback(void* stream, uint32_t buffer_size, PP_TimeDelta
     } else {  /* streaming/converting */
     } else {  /* streaming/converting */
         const int stream_len = _this->callbackspec.size;
         const int stream_len = _this->callbackspec.size;
         while (SDL_AudioStreamAvailable(_this->stream) < len) {
         while (SDL_AudioStreamAvailable(_this->stream) < len) {
-            callback(_this->spec.userdata, _this->fake_stream, stream_len);
-            if (SDL_AudioStreamPut(_this->stream, _this->fake_stream, stream_len) == -1) {
+            callback(_this->spec.userdata, _this->work_buffer, stream_len);
+            if (SDL_AudioStreamPut(_this->stream, _this->work_buffer, stream_len) == -1) {
                 SDL_AudioStreamClear(_this->stream);
                 SDL_AudioStreamClear(_this->stream);
                 SDL_AtomicSet(&_this->enabled, 0);
                 SDL_AtomicSet(&_this->enabled, 0);
                 break;
                 break;