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 */
|
/* 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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue