SDL: emscripten: Proxy Emscripten_GetSystemTheme and EMSCRIPTENAUDIO_OpenDevice to the main thread.

From 168d1a9253244f9dd1fdc771a362fee9e27aa22d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=BCndig?= <[EMAIL REDACTED]>
Date: Mon, 12 May 2025 21:10:28 +0200
Subject: [PATCH] emscripten: Proxy Emscripten_GetSystemTheme and
 EMSCRIPTENAUDIO_OpenDevice to the main thread.

---
 src/audio/emscripten/SDL_emscriptenaudio.c | 2 +-
 src/video/emscripten/SDL_emscriptenvideo.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/audio/emscripten/SDL_emscriptenaudio.c b/src/audio/emscripten/SDL_emscriptenaudio.c
index 55fb5b49fc327..46b8b7645bf1b 100644
--- a/src/audio/emscripten/SDL_emscriptenaudio.c
+++ b/src/audio/emscripten/SDL_emscriptenaudio.c
@@ -189,7 +189,7 @@ static bool EMSCRIPTENAUDIO_OpenDevice(SDL_AudioDevice *device)
     }
 
     // limit to native freq
-    device->spec.freq = EM_ASM_INT({ return Module['SDL3'].audioContext.sampleRate; });
+    device->spec.freq = MAIN_THREAD_EM_ASM_INT({ return Module['SDL3'].audioContext.sampleRate; });
     device->sample_frames = SDL_GetDefaultSampleFramesFromFreq(device->spec.freq) * 2;  // double the buffer size, some browsers need more, and we'll just have to live with the latency.
 
     SDL_UpdatedAudioDeviceFormat(device);
diff --git a/src/video/emscripten/SDL_emscriptenvideo.c b/src/video/emscripten/SDL_emscriptenvideo.c
index 8ddcb95a5d86a..d1f1a6963f9dc 100644
--- a/src/video/emscripten/SDL_emscriptenvideo.c
+++ b/src/video/emscripten/SDL_emscriptenvideo.c
@@ -64,7 +64,7 @@ static SDL_SystemTheme Emscripten_GetSystemTheme(void)
     /* Technically, light theme can mean explicit light theme or no preference.
        https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme#syntax */
 
-    int theme_code = EM_ASM_INT({
+    int theme_code = MAIN_THREAD_EM_ASM_INT({
         if (!window.matchMedia) {
             return -1;
         }