From 1dcd036b9efcbafdae476502571cae97f69aeb9a Mon Sep 17 00:00:00 2001 From: hrydgard Date: Tue, 20 Jan 2009 18:42:01 +0000 Subject: [PATCH] Stop the audio mixing when stepping in the debugger. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1960 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Core/Src/Core.cpp | 1 + Source/PluginSpecs/pluginspecs_dsp.h | 3 ++- Source/Plugins/Plugin_DSP_HLE/Src/PCHW/Mixer.cpp | 5 +++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp index 6bfcc91249..f52082f1cb 100644 --- a/Source/Core/Core/Src/Core.cpp +++ b/Source/Core/Core/Src/Core.cpp @@ -330,6 +330,7 @@ THREAD_RETURN EmuThread(void *pArg) dspInit.pDebuggerBreak = Callback_DebuggerBreak; dspInit.pGenerateDSPInterrupt = Callback_DSPInterrupt; dspInit.pGetAudioStreaming = AudioInterface::Callback_GetStreaming; + dspInit.pEmulatorState = (int *)&PowerPC::state; Plugins.GetDSP()->Initialize((void *)&dspInit); // Load and Init PadPlugin diff --git a/Source/PluginSpecs/pluginspecs_dsp.h b/Source/PluginSpecs/pluginspecs_dsp.h index 6fb9e6a023..35f4d42101 100644 --- a/Source/PluginSpecs/pluginspecs_dsp.h +++ b/Source/PluginSpecs/pluginspecs_dsp.h @@ -19,7 +19,7 @@ typedef unsigned int (*TAudioGetStreaming)(short* _pDestBuffer, unsigned int typedef struct { - void* hWnd; + void *hWnd; TARAM_Read_U8 pARAM_Read_U8; TGetMemoryPointer pGetMemoryPointer; TGetARAMPointer pGetARAMPointer; @@ -28,6 +28,7 @@ typedef struct TDebuggerBreak pDebuggerBreak; TGenerateDSPInt pGenerateDSPInterrupt; TAudioGetStreaming pGetAudioStreaming; + int *pEmulatorState; } DSPInitialize; diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/PCHW/Mixer.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/PCHW/Mixer.cpp index 803ae90d30..c59228e64e 100644 --- a/Source/Plugins/Plugin_DSP_HLE/Src/PCHW/Mixer.cpp +++ b/Source/Plugins/Plugin_DSP_HLE/Src/PCHW/Mixer.cpp @@ -58,6 +58,11 @@ void Mixer(short *buffer, int numSamples, int bits, int rate, int channels) // silence memset(buffer, 0, numSamples * 2 * sizeof(short)); + if (g_dspInitialize.pEmulatorState) { + if (*g_dspInitialize.pEmulatorState != 0) + return; + } + // first get the DTK Music if (g_Config.m_EnableDTKMusic) {