From 0e06b8cde64f128b19629ba1a3212e53191a7d79 Mon Sep 17 00:00:00 2001
From: Sylvain Becker <[EMAIL REDACTED]>
Date: Wed, 28 Dec 2022 23:05:31 +0100
Subject: [PATCH] Add Audio/Video Init/Quit (#12)
SDL_{Audio,Video}{Init,Quit}() were removed from SDL3
---
src/sdl2_compat.c | 31 ++++++++++++++++++++++++++++++-
src/sdl3_syms.h | 4 ----
2 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/src/sdl2_compat.c b/src/sdl2_compat.c
index 40f9297..c4470f6 100644
--- a/src/sdl2_compat.c
+++ b/src/sdl2_compat.c
@@ -1275,7 +1275,7 @@ EventFilter3to2(void *userdata, SDL_Event *event3)
}
/* push new events when we need to convert something, like toplevel SDL3 events generating the SDL2 SDL_WINDOWEVENT. */
-
+
switch (event3->type) {
/* display events moved to the top level in SDL3. */
case SDL_DISPLAYEVENT_ORIENTATION:
@@ -2781,6 +2781,35 @@ SDL_CreateRenderer(SDL_Window *window, int index, Uint32 flags)
return SDL3_CreateRenderer(window, name, flags);
}
+DECLSPEC int SDLCALL
+SDL_AudioInit(const char *driver_name)
+{
+ if (driver_name) {
+ SDL3_SetHint("SDL_AUDIO_DRIVER", driver_name);
+ }
+ SDL_InitSubSystem(SDL_INIT_AUDIO);
+}
+
+DECLSPEC void SDLCALL
+SDL_AudioQuit(void)
+{
+ SDL_QuitSubSystem(SDL_INIT_AUDIO);
+}
+
+DECLSPEC int SDLCALL
+SDL_VideoInit(const char *driver_name)
+{
+ if (driver_name) {
+ SDL3_SetHint("SDL_VIDEO_DRIVER", driver_name);
+ }
+ SDL_InitSubSystem(SDL_INIT_VIDEO);
+}
+
+DECLSPEC void SDLCALL
+SDL_VideoQuit(void)
+{
+ SDL_QuitSubSystem(SDL_INIT_VIDEO);
+}
/* SDL3 doesn't have 3dNow. */
#if defined(__GNUC__) && defined(__i386__)
diff --git a/src/sdl3_syms.h b/src/sdl3_syms.h
index 3f560f1..761d427 100644
--- a/src/sdl3_syms.h
+++ b/src/sdl3_syms.h
@@ -95,8 +95,6 @@ SDL3_SYM_PASSTHROUGH(void*,AtomicSetPtr,(void **a, void *b),(a,b),return)
SDL3_SYM_PASSTHROUGH(void*,AtomicGetPtr,(void **a),(a),return)
SDL3_SYM_PASSTHROUGH(int,GetNumAudioDrivers,(void),(),return)
SDL3_SYM_PASSTHROUGH(const char*,GetAudioDriver,(int a),(a),return)
-SDL3_SYM_PASSTHROUGH(int,AudioInit,(const char *a),(a),return)
-SDL3_SYM_PASSTHROUGH(void,AudioQuit,(void),(),)
SDL3_SYM_PASSTHROUGH(const char*,GetCurrentAudioDriver,(void),(),return)
SDL3_SYM_PASSTHROUGH(int,OpenAudio,(SDL_AudioSpec *a, SDL_AudioSpec *b),(a,b),return)
SDL3_SYM_PASSTHROUGH(int,GetNumAudioDevices,(int a),(a),return)
@@ -506,8 +504,6 @@ SDL3_SYM(void,GetVersion,(SDL_version *a),(a),)
SDL3_SYM_PASSTHROUGH(const char*,GetRevision,(void),(),return)
SDL3_SYM_PASSTHROUGH(int,GetNumVideoDrivers,(void),(),return)
SDL3_SYM_PASSTHROUGH(const char*,GetVideoDriver,(int a),(a),return)
-SDL3_SYM_PASSTHROUGH(int,VideoInit,(const char *a),(a),return)
-SDL3_SYM_PASSTHROUGH(void,VideoQuit,(void),(),)
SDL3_SYM_PASSTHROUGH(const char*,GetCurrentVideoDriver,(void),(),return)
SDL3_SYM_PASSTHROUGH(int,GetNumVideoDisplays,(void),(),return)
SDL3_SYM_PASSTHROUGH(const char*,GetDisplayName,(int a),(a),return)