Browse Source

loopwave: Use SDL_GetAudioStreamQueued() for more accurate results.

Ryan C. Gordon 1 year ago
parent
commit
b656720bc6
1 changed files with 2 additions and 2 deletions
  1. 2 2
      test/loopwave.c

+ 2 - 2
test/loopwave.c

@@ -31,14 +31,14 @@ static struct
     SDL_AudioSpec spec;
     Uint8 *sound;    /* Pointer to wave data */
     Uint32 soundlen; /* Length of wave data */
-    Uint32 soundpos;
 } wave;
 
 static SDL_AudioStream *stream;
 
 static void fillerup(void)
 {
-    if (SDL_GetAudioStreamAvailable(stream) < (int) ((wave.soundlen / 2))) {
+    const int minimum = (wave.soundlen / SDL_AUDIO_FRAMESIZE(wave.spec)) / 2;
+    if (SDL_GetAudioStreamQueued(stream) < minimum) {
         SDL_PutAudioStreamData(stream, wave.sound, wave.soundlen);
     }
 }