Bläddra i källkod

audio: Added a ThreadDeinit() method to match ThreadInit.

Not used by any targets at the moment, but will be shortly!
Ryan C. Gordon 8 år sedan
förälder
incheckning
175f1e8f4a
2 ändrade filer med 11 tillägg och 0 borttagningar
  1. 10 0
      src/audio/SDL_audio.c
  2. 1 0
      src/audio/SDL_sysaudio.h

+ 10 - 0
src/audio/SDL_audio.c

@@ -221,6 +221,11 @@ SDL_AudioThreadInit_Default(_THIS)
 {                               /* no-op. */
 }
 
+static void
+SDL_AudioThreadDeinit_Default(_THIS)
+{                               /* no-op. */
+}
+
 static void
 SDL_AudioWaitDevice_Default(_THIS)
 {                               /* no-op. */
@@ -340,6 +345,7 @@ finish_audio_entry_points_init(void)
     FILL_STUB(DetectDevices);
     FILL_STUB(OpenDevice);
     FILL_STUB(ThreadInit);
+    FILL_STUB(ThreadDeinit);
     FILL_STUB(WaitDevice);
     FILL_STUB(PlayDevice);
     FILL_STUB(GetPendingBytes);
@@ -712,6 +718,8 @@ SDL_RunAudio(void *devicep)
     /* Wait for the audio to drain. */
     SDL_Delay(((device->spec.samples * 1000) / device->spec.freq) * 2);
 
+    current_audio.impl.ThreadDeinit(device);
+
     return 0;
 }
 
@@ -810,6 +818,8 @@ SDL_CaptureAudio(void *devicep)
 
     current_audio.impl.FlushCapture(device);
 
+    current_audio.impl.ThreadDeinit(device);
+
     return 0;
 }
 

+ 1 - 0
src/audio/SDL_sysaudio.h

@@ -67,6 +67,7 @@ typedef struct SDL_AudioDriverImpl
     void (*DetectDevices) (void);
     int (*OpenDevice) (_THIS, void *handle, const char *devname, int iscapture);
     void (*ThreadInit) (_THIS); /* Called by audio thread at start */
+    void (*ThreadDeinit) (_THIS); /* Called by audio thread at start */
     void (*WaitDevice) (_THIS);
     void (*PlayDevice) (_THIS);
     int (*GetPendingBytes) (_THIS);