sdl12-compat: audio: SDL_OpenAudio must init the subsystem if necessary.

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");