From 4bb2e8857d8e26f0e2cc380768006a3c26ccc9d5 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 12 May 2025 14:47:52 -0500 Subject: [PATCH] detect audio spec changes --- src/audio/sdlAudio.cpp | 8 ++++++++ src/audio/sdlAudio.h | 1 + 2 files changed, 9 insertions(+) diff --git a/src/audio/sdlAudio.cpp b/src/audio/sdlAudio.cpp index feb99657c..5b834c484 100644 --- a/src/audio/sdlAudio.cpp +++ b/src/audio/sdlAudio.cpp @@ -27,6 +27,12 @@ void taSDLProcess(void* inst, unsigned char* buf, int nframes) { } void TAAudioSDL::onProcess(unsigned char* buf, int nframes) { + if (memcmp(&arCopy,&ar,sizeof(SDL_AudioSpec))!=0) { + logE("AUDIO SPEC HAS CHANGED!!!"); +#ifdef _WIN32 + MessageBox(NULL,"AUDIO SPEC HAS CHANGED!!!","Furnace",MB_OK|MB_ICONERROR); +#endif + } if (audioProcCallback!=NULL) { if (midiIn!=NULL) midiIn->gather(); audioProcCallback(audioProcCallbackUser,inBufs,outBufs,desc.inChans,desc.outChans,desc.bufsize); @@ -135,6 +141,8 @@ bool TAAudioSDL::init(TAAudioDesc& request, TAAudioDesc& response) { return false; } + memcpy(&arCopy,&ar,sizeof(SDL_AudioSpec)); + const char* backendName=SDL_GetCurrentAudioDriver(); desc.deviceName=request.deviceName; diff --git a/src/audio/sdlAudio.h b/src/audio/sdlAudio.h index 4f8cc32c3..f90b5ae62 100644 --- a/src/audio/sdlAudio.h +++ b/src/audio/sdlAudio.h @@ -22,6 +22,7 @@ class TAAudioSDL: public TAAudio { SDL_AudioSpec ac, ar; + SDL_AudioSpec arCopy; SDL_AudioDeviceID ai; bool audioSysStarted;