From 14465fc12c33430475af7e10886e2230192e6a41 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Mon, 3 Oct 2022 20:38:49 -0400
Subject: [PATCH] audio: SDL_OpenAudio must init the subsystem if necessary.
Reference Issue #228.
---
src/SDL12_compat.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/SDL12_compat.c b/src/SDL12_compat.c
index 75dd2da8..f93c6bd6 100644
--- a/src/SDL12_compat.c
+++ b/src/SDL12_compat.c
@@ -9030,6 +9030,13 @@ SDL_OpenAudio(SDL_AudioSpec *want, SDL_AudioSpec *obtained)
{
SDL_bool already_opened;
+ /* SDL_OpenAudio() will init the subsystem for you if necessary, yuck. */
+ if ((InitializedSubsystems20 & SDL_INIT_AUDIO) != SDL_INIT_AUDIO) {
+ if (SDL_InitSubSystem(SDL12_INIT_AUDIO) < 0) {
+ return -1;
+ }
+ }
+
/* SDL2 uses a NULL callback to mean "we plan to use SDL_QueueAudio()" */
if (want && (want->callback == NULL)) {
return SDL20_SetError("Callback can't be NULL");