diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c index a788c89a2..804138c5b 100644 --- a/src/audio/SDL_audio.c +++ b/src/audio/SDL_audio.c @@ -178,6 +178,12 @@ SDL_AudioPlayDevice_Default(_THIS) { /* no-op. */ } +static int +SDL_AudioGetPendingBytes_Default(_THIS) +{ + return 0; +} + static Uint8 * SDL_AudioGetDeviceBuf_Default(_THIS) { @@ -253,6 +259,7 @@ finalize_audio_entry_points(void) FILL_STUB(ThreadInit); FILL_STUB(WaitDevice); FILL_STUB(PlayDevice); + FILL_STUB(GetPendingBytes); FILL_STUB(GetDeviceBuf); FILL_STUB(WaitDone); FILL_STUB(CloseDevice); @@ -471,7 +478,7 @@ SDL_GetQueuedAudioSize(SDL_AudioDeviceID devid) SDL_AudioDevice *device = get_audio_device(devid); if (device) { current_audio.impl.LockDevice(device); - retval = device->queued_bytes; + retval = device->queued_bytes + current_audio.impl.GetPendingBytes(device); current_audio.impl.UnlockDevice(device); } diff --git a/src/audio/SDL_sysaudio.h b/src/audio/SDL_sysaudio.h index c1810b432..4f933205d 100644 --- a/src/audio/SDL_sysaudio.h +++ b/src/audio/SDL_sysaudio.h @@ -60,6 +60,7 @@ typedef struct SDL_AudioDriverImpl void (*ThreadInit) (_THIS); /* Called by audio thread at start */ void (*WaitDevice) (_THIS); void (*PlayDevice) (_THIS); + int (*GetPendingBytes) (_THIS); Uint8 *(*GetDeviceBuf) (_THIS); void (*WaitDone) (_THIS); void (*CloseDevice) (_THIS);