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