n3dsaudio: Patched to compile.

This commit is contained in:
Ryan C. Gordon
2023-07-22 11:07:30 -04:00
parent 66bcee2ca9
commit 86ca412436

View File

@@ -42,32 +42,22 @@ static SDL_INLINE void contextUnlock(SDL_AudioDevice *device)
LightLock_Unlock(&device->hidden->lock); 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) static void N3DSAUD_DspHook(DSP_HookType hook)
{ {
if (hook == DSPHOOK_ONCANCEL) { if (hook == DSPHOOK_ONCANCEL) {
contextLock(audio_device); contextLock(audio_device);
audio_device->hidden->isCancelled = SDL_TRUE; audio_device->hidden->isCancelled = SDL_TRUE;
SDL_AtomicSet(&audio_device->enabled, SDL_FALSE); SDL_AudioDeviceDisconnected(audio_device);
CondVar_Broadcast(&audio_device->hidden->cv); CondVar_Broadcast(&audio_device->hidden->cv);
contextUnlock(audio_device); contextUnlock(audio_device);
} }
} }
static void AudioFrameFinished(void *device) static void AudioFrameFinished(void *vdevice)
{ {
bool shouldBroadcast = false; bool shouldBroadcast = false;
unsigned i; unsigned i;
SDL_AudioDevice *device = (SDL_AudioDevice *)device; SDL_AudioDevice *device = (SDL_AudioDevice *)vdevice;
contextLock(device); contextLock(device);
@@ -163,7 +153,7 @@ static int N3DSAUDIO_OpenDevice(SDL_AudioDevice *device)
ndspChnSetInterp(0, NDSP_INTERP_LINEAR); ndspChnSetInterp(0, NDSP_INTERP_LINEAR);
ndspChnSetRate(0, device->spec.freq); ndspChnSetRate(0, device->spec.freq);
ndspChnSetFormat(0, device->hidden->format); ndspChnSetFormat(0, format);
SDL_zeroa(mix); SDL_zeroa(mix);
mix[0] = mix[1] = 1.0f; mix[0] = mix[1] = 1.0f;
@@ -203,7 +193,7 @@ static void N3DSAUDIO_PlayDevice(SDL_AudioDevice *device, const Uint8 *buffer, i
contextUnlock(device); contextUnlock(device);
SDL_memcpy((void *)device->hidden->waveBuf[nextbuf].data_vaddr, buffer, buflen); 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]); ndspChnWaveBufAdd(0, &device->hidden->waveBuf[nextbuf]);
} }
@@ -275,8 +265,6 @@ static SDL_bool N3DSAUDIO_Init(SDL_AudioDriverImpl *impl)
impl->GetDeviceBuf = N3DSAUDIO_GetDeviceBuf; impl->GetDeviceBuf = N3DSAUDIO_GetDeviceBuf;
impl->CloseDevice = N3DSAUDIO_CloseDevice; impl->CloseDevice = N3DSAUDIO_CloseDevice;
impl->ThreadInit = N3DSAUDIO_ThreadInit; impl->ThreadInit = N3DSAUDIO_ThreadInit;
impl->LockDevice = N3DSAUD_LockAudio;
impl->UnlockDevice = N3DSAUD_UnlockAudio;
impl->OnlyHasDefaultOutputDevice = SDL_TRUE; impl->OnlyHasDefaultOutputDevice = SDL_TRUE;
// Should be possible, but micInit would fail // Should be possible, but micInit would fail