Mercurial > SDL_sound_CoreAudio
diff playsound/playsound.c @ 214:e27b33a6d5fe
Now attempts to wait for SDL to finish playing the end of the buffered
data before closing the audio device.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Sun, 13 Jan 2002 19:50:02 +0000 |
parents | 9d436dbb1666 |
children | d6b24586822a |
line wrap: on
line diff
--- a/playsound/playsound.c Sun Jan 13 19:48:16 2002 +0000 +++ b/playsound/playsound.c Sun Jan 13 19:50:02 2002 +0000 @@ -240,6 +240,7 @@ int predecode = 0; int use_specific_audiofmt = 0; int i; + int delay; setbuf(stdout, NULL); setbuf(stderr, NULL); @@ -463,6 +464,12 @@ } /* while */ SDL_PauseAudio(1); + /* Sleep two buffers' worth of audio before closing, in order + to allow the playback to finish. This isn't always enough; + perhaps SDL needs a way to explicitly wait for device drain? */ + delay = 2 * 1000 * sdl_desired.samples / sdl_desired.freq; + SDL_Delay(delay); + if (sample->flags & SOUND_SAMPLEFLAG_ERROR) { fprintf(stderr, "Error in decoding sound file!\n"