From 82f969194dd8f641ec94ab06cfbfa9faecec5d24 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Wed, 13 Sep 2023 11:06:11 -0400
Subject: [PATCH] Updated with latest SDL3 audio API changes.
---
src/sdl2_compat.c | 10 +++++-----
src/sdl3_syms.h | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/sdl2_compat.c b/src/sdl2_compat.c
index fb577b8..95a66ad 100644
--- a/src/sdl2_compat.c
+++ b/src/sdl2_compat.c
@@ -3658,7 +3658,7 @@ SDL_GetAudioDeviceSpec(int idx, int iscapture, SDL2_AudioSpec *spec2)
if ((idx < 0) || (idx >= list->num_devices)) {
SDL3_InvalidParamError("index");
} else {
- retval = SDL3_GetAudioDeviceFormat(list->devices[idx].devid, &spec3);
+ retval = SDL3_GetAudioDeviceFormat(list->devices[idx].devid, &spec3, NULL);
}
SDL3_UnlockMutex(AudioDeviceLock);
@@ -3684,7 +3684,7 @@ SDL_GetDefaultAudioInfo(char **name, SDL2_AudioSpec *spec2, int iscapture)
return SDL3_SetError("Audio subsystem is not initialized");
}
- retval = SDL3_GetAudioDeviceFormat(iscapture ? SDL_AUDIO_DEVICE_DEFAULT_CAPTURE : SDL_AUDIO_DEVICE_DEFAULT_OUTPUT, &spec3);
+ retval = SDL3_GetAudioDeviceFormat(iscapture ? SDL_AUDIO_DEVICE_DEFAULT_CAPTURE : SDL_AUDIO_DEVICE_DEFAULT_OUTPUT, &spec3, NULL);
if (retval == 0) {
if (name) {
*name = SDL3_strdup("System default"); /* the default device can change to different physical hardware on-the-fly in SDL3, so we don't provide a name for it. */
@@ -3790,7 +3790,7 @@ static int PrepareAudiospec(const SDL2_AudioSpec *orig2, SDL2_AudioSpec *prepare
return 1;
}
-static void SDLCALL SDL2AudioDeviceQueueingCallback(void *userdata, SDL_AudioStream *stream3, int approx_amount)
+static void SDLCALL SDL2AudioDeviceQueueingCallback(void *userdata, SDL_AudioStream *stream3, int approx_amount, int total_amount)
{
SDL2_AudioStream *stream2 = (SDL2_AudioStream *) userdata;
Uint8 *buffer;
@@ -3823,7 +3823,7 @@ static void SDLCALL SDL2AudioDeviceQueueingCallback(void *userdata, SDL_AudioStr
SDL3_free(buffer);
}
-static void SDLCALL SDL2AudioDeviceCallbackBridge(void *userdata, SDL_AudioStream *stream3, int approx_amount)
+static void SDLCALL SDL2AudioDeviceCallbackBridge(void *userdata, SDL_AudioStream *stream3, int approx_amount, int total_amount)
{
SDL2_AudioStream *stream2 = (SDL2_AudioStream *) userdata;
Uint8 *buffer;
@@ -3921,7 +3921,7 @@ static SDL_AudioDeviceID OpenAudioDeviceLocked(const char *devicename, int iscap
}
SDL3_PauseAudioDevice(device3); /* they start paused in SDL2 */
- SDL3_GetAudioDeviceFormat(device3, &spec3);
+ SDL3_GetAudioDeviceFormat(device3, &spec3, NULL);
if ((spec3.format != obtained2->format) && (allowed_changes & SDL2_AUDIO_ALLOW_FORMAT_CHANGE)) {
obtained2->format = spec3.format;
diff --git a/src/sdl3_syms.h b/src/sdl3_syms.h
index 75ee98a..bf6aadb 100644
--- a/src/sdl3_syms.h
+++ b/src/sdl3_syms.h
@@ -878,7 +878,7 @@ SDL3_SYM_PASSTHROUGH(const char*,GetCurrentAudioDriver,(void),(),return)
SDL3_SYM(SDL_AudioDeviceID*,GetAudioOutputDevices,(int *a),(a),return)
SDL3_SYM(SDL_AudioDeviceID*,GetAudioCaptureDevices,(int *a),(a),return)
SDL3_SYM(char*,GetAudioDeviceName,(SDL_AudioDeviceID a),(a),return)
-SDL3_SYM(int,GetAudioDeviceFormat,(SDL_AudioDeviceID a, SDL_AudioSpec *b),(a,b),return)
+SDL3_SYM(int,GetAudioDeviceFormat,(SDL_AudioDeviceID a, SDL_AudioSpec *b, int *c),(a,b,c),return)
SDL3_SYM(SDL_AudioDeviceID,OpenAudioDevice,(SDL_AudioDeviceID a, const SDL_AudioSpec *b),(a,b),return)
SDL3_SYM(void,CloseAudioDevice,(SDL_AudioDeviceID a),(a),)
SDL3_SYM(int,BindAudioStream,(SDL_AudioDeviceID a, SDL_AudioStream *b),(a,b),return)