Mercurial > sdl-ios-xcode
changeset 96:799bea5504e2
Fixed blocking open bug when using blocking audio writes
author | Sam Lantinga <slouken@lokigames.com> |
---|---|
date | Mon, 09 Jul 2001 15:46:41 +0000 |
parents | d84a06e0c358 |
children | c7bcdece4845 |
files | src/audio/dsp/SDL_dspaudio.c |
diffstat | 1 files changed, 12 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/audio/dsp/SDL_dspaudio.c Sun Jul 08 09:03:47 2001 +0000 +++ b/src/audio/dsp/SDL_dspaudio.c Mon Jul 09 15:46:41 2001 +0000 @@ -58,11 +58,7 @@ /* Open the audio device for playback, and don't block if busy */ #define USE_BLOCKING_WRITES -#ifdef USE_BLOCKING_WRITES -#define OPEN_FLAGS O_WRONLY -#else #define OPEN_FLAGS (O_WRONLY|O_NONBLOCK) -#endif /* Audio driver functions */ static int DSP_OpenAudio(_THIS, SDL_AudioSpec *spec); @@ -339,6 +335,18 @@ } mixbuf = NULL; +#ifdef USE_BLOCKING_WRITES + /* Make the file descriptor use blocking writes with fcntl() */ + { long flags; + flags = fcntl(audio_fd, F_GETFL); + flags &= ~O_NONBLOCK; + if ( fcntl(audio_fd, F_SETFL, flags) < 0 ) { + SDL_SetError("Couldn't set audio blocking mode"); + return(-1); + } + } +#endif + /* Get a list of supported hardware formats */ if ( ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &value) < 0 ) { SDL_SetError("Couldn't get audio format list");