# HG changeset patch # User arpi # Date 1020112935 0 # Node ID d8c34a35ccb9e448cda62e0eb23d0261278f8756 # Parent 4564bc22de3e03b037ec568641e5576c6e52cbf4 nonblock open is not legal for OSS (see OSS api docs), and causes problems on freebsd (and maybe other OSs) diff -r 4564bc22de3e -r d8c34a35ccb9 libao2/ao_oss.c --- a/libao2/ao_oss.c Mon Apr 29 20:36:53 2002 +0000 +++ b/libao2/ao_oss.c Mon Apr 29 20:42:15 2002 +0000 @@ -103,17 +103,23 @@ if (verbose) printf("audio_setup: using '%s' dsp device\n", dsp); +#ifdef __linux__ audio_fd=open(dsp, O_WRONLY | O_NONBLOCK); +#else + audio_fd=open(dsp, O_WRONLY); +#endif if(audio_fd<0){ printf("Can't open audio device %s: %s -> no sound\n", dsp, strerror(errno)); return 0; } +#ifdef __linux__ /* Remove the non-blocking flag */ if(fcntl(audio_fd, F_SETFL, 0) < 0) { printf("Can't make filedescriptor non-blocking: %s -> no sound\n", strerror(errno)); return 0; } +#endif ao_data.bps=channels*rate; if(format != AFMT_U8 && format != AFMT_S8) @@ -217,8 +223,13 @@ // stop playing and empty buffers (for seeking/pause) static void reset(){ uninit(); +#ifdef __linux__ audio_fd=open(dsp, O_WRONLY | O_NONBLOCK); if(audio_fd < 0 || fcntl(audio_fd, F_SETFL, 0) < 0){ +#else + audio_fd=open(dsp, O_WRONLY); + if(audio_fd < 0){ +#endif printf("\nFatal error: *** CANNOT RE-OPEN / RESET AUDIO DEVICE *** %s\n", strerror(errno)); return; }