NetBSD patch to use AUDIO_GETBUFINFO when available (contributed by jmcneill)

This commit is contained in:
Sam Lantinga 2012-09-25 20:47:38 -07:00
parent adff2fb994
commit d2b7ba63d1

View file

@ -53,6 +53,10 @@
/* Open the audio device for playback, and don't block if busy */ /* Open the audio device for playback, and don't block if busy */
#define OPEN_FLAGS (O_WRONLY|O_NONBLOCK) #define OPEN_FLAGS (O_WRONLY|O_NONBLOCK)
#if defined(AUDIO_GETINFO) && !defined(AUDIO_GETBUFINFO)
#define AUDIO_GETBUFINFO AUDIO_GETINFO
#endif
/* Audio driver functions */ /* Audio driver functions */
static int DSP_OpenAudio(_THIS, SDL_AudioSpec * spec); static int DSP_OpenAudio(_THIS, SDL_AudioSpec * spec);
static void DSP_WaitAudio(_THIS); static void DSP_WaitAudio(_THIS);
@ -129,11 +133,11 @@ AudioBootStrap SUNAUDIO_bootstrap = {
void void
CheckUnderflow(_THIS) CheckUnderflow(_THIS)
{ {
#ifdef AUDIO_GETINFO #ifdef AUDIO_GETBUFINFO
audio_info_t info; audio_info_t info;
int left; int left;
ioctl(audio_fd, AUDIO_GETINFO, &info); ioctl(audio_fd, AUDIO_GETBUFINFO, &info);
left = (written - info.play.samples); left = (written - info.play.samples);
if (written && (left == 0)) { if (written && (left == 0)) {
fprintf(stderr, "audio underflow!\n"); fprintf(stderr, "audio underflow!\n");
@ -145,12 +149,12 @@ CheckUnderflow(_THIS)
void void
DSP_WaitAudio(_THIS) DSP_WaitAudio(_THIS)
{ {
#ifdef AUDIO_GETINFO #ifdef AUDIO_GETBUFINFO
#define SLEEP_FUDGE 10 /* 10 ms scheduling fudge factor */ #define SLEEP_FUDGE 10 /* 10 ms scheduling fudge factor */
audio_info_t info; audio_info_t info;
Sint32 left; Sint32 left;
ioctl(audio_fd, AUDIO_GETINFO, &info); ioctl(audio_fd, AUDIO_GETBUFINFO, &info);
left = (written - info.play.samples); left = (written - info.play.samples);
if (left > fragsize) { if (left > fragsize) {
Sint32 sleepy; Sint32 sleepy;