https://github.com/libsdl-org/SDL/commit/86ca412436bc6340fd3b37d2a13a16d9a8fbb19b
From 86ca412436bc6340fd3b37d2a13a16d9a8fbb19b Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Sat, 22 Jul 2023 11:07:30 -0400
Subject: [PATCH] n3dsaudio: Patched to compile.
---
src/audio/n3ds/SDL_n3dsaudio.c | 22 +++++-----------------
1 file changed, 5 insertions(+), 17 deletions(-)
diff --git a/src/audio/n3ds/SDL_n3dsaudio.c b/src/audio/n3ds/SDL_n3dsaudio.c
index e43ad087714c..f17ac5601f97 100644
--- a/src/audio/n3ds/SDL_n3dsaudio.c
+++ b/src/audio/n3ds/SDL_n3dsaudio.c
@@ -42,32 +42,22 @@ static SDL_INLINE void contextUnlock(SDL_AudioDevice *device)
LightLock_Unlock(&device->hidden->lock);
}
-static void N3DSAUD_LockAudio(SDL_AudioDevice *device)
-{
- contextLock(device);
-}
-
-static void N3DSAUD_UnlockAudio(SDL_AudioDevice *device)
-{
- contextUnlock(device);
-}
-
static void N3DSAUD_DspHook(DSP_HookType hook)
{
if (hook == DSPHOOK_ONCANCEL) {
contextLock(audio_device);
audio_device->hidden->isCancelled = SDL_TRUE;
- SDL_AtomicSet(&audio_device->enabled, SDL_FALSE);
+ SDL_AudioDeviceDisconnected(audio_device);
CondVar_Broadcast(&audio_device->hidden->cv);
contextUnlock(audio_device);
}
}
-static void AudioFrameFinished(void *device)
+static void AudioFrameFinished(void *vdevice)
{
bool shouldBroadcast = false;
unsigned i;
- SDL_AudioDevice *device = (SDL_AudioDevice *)device;
+ SDL_AudioDevice *device = (SDL_AudioDevice *)vdevice;
contextLock(device);
@@ -163,7 +153,7 @@ static int N3DSAUDIO_OpenDevice(SDL_AudioDevice *device)
ndspChnSetInterp(0, NDSP_INTERP_LINEAR);
ndspChnSetRate(0, device->spec.freq);
- ndspChnSetFormat(0, device->hidden->format);
+ ndspChnSetFormat(0, format);
SDL_zeroa(mix);
mix[0] = mix[1] = 1.0f;
@@ -203,7 +193,7 @@ static void N3DSAUDIO_PlayDevice(SDL_AudioDevice *device, const Uint8 *buffer, i
contextUnlock(device);
SDL_memcpy((void *)device->hidden->waveBuf[nextbuf].data_vaddr, buffer, buflen);
- DSP_FlushDataCache(device->hidden->waveBuf[nextbuf].data_vaddr, sampleLen);
+ DSP_FlushDataCache(device->hidden->waveBuf[nextbuf].data_vaddr, buflen);
ndspChnWaveBufAdd(0, &device->hidden->waveBuf[nextbuf]);
}
@@ -275,8 +265,6 @@ static SDL_bool N3DSAUDIO_Init(SDL_AudioDriverImpl *impl)
impl->GetDeviceBuf = N3DSAUDIO_GetDeviceBuf;
impl->CloseDevice = N3DSAUDIO_CloseDevice;
impl->ThreadInit = N3DSAUDIO_ThreadInit;
- impl->LockDevice = N3DSAUD_LockAudio;
- impl->UnlockDevice = N3DSAUD_UnlockAudio;
impl->OnlyHasDefaultOutputDevice = SDL_TRUE;
// Should be possible, but micInit would fail