NetBSD patch to use AUDIO_GETBUFINFO when available (contributed by jmcneill)
This commit is contained in:
parent
adff2fb994
commit
d2b7ba63d1
1 changed files with 8 additions and 4 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue