From ad71303007767bb5f536406708c316de798db024 Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Mon, 31 Jan 2011 14:25:50 +0000 Subject: [PATCH] Fix the DSPLLE debugger window refresh without including wxWidgets in the core. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7020 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Core/Src/HW/DSPLLE/DSPHost.cpp | 24 +++++------------- Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp | 25 +++---------------- Source/Core/Core/Src/HW/DSPLLE/DSPLLE.h | 1 + Source/Core/Core/Src/Host.h | 1 + Source/Core/DebuggerWX/Src/DSPDebugWindow.cpp | 10 ++++++-- 5 files changed, 19 insertions(+), 42 deletions(-) diff --git a/Source/Core/Core/Src/HW/DSPLLE/DSPHost.cpp b/Source/Core/Core/Src/HW/DSPLLE/DSPHost.cpp index fa9341159b..c22c7df4e0 100644 --- a/Source/Core/Core/Src/HW/DSPLLE/DSPHost.cpp +++ b/Source/Core/Core/Src/HW/DSPLLE/DSPHost.cpp @@ -23,16 +23,7 @@ #include "../DSP.h" #include "../../ConfigManager.h" #include "../../PowerPC/PowerPC.h" - -/* -ECTORTODO -#if defined(HAVE_WX) && HAVE_WX - -#include "Debugger/DSPDebugWindow.h" // For the DSPDebuggerLLE class -extern DSPDebuggerLLE* m_DebuggerFrame; - -#endif -*/ +#include "Host.h" // The user of the DSPCore library must supply a few functions so that the // emulation core can access the environment it runs in. If the emulation @@ -103,20 +94,17 @@ u32 DSPHost_CodeLoaded(const u8 *ptr, int size) // Always add the ROM. DSPSymbols::AutoDisassembly(0x8000, 0x9000); - /* ECTORTODO + #if defined(HAVE_WX) && HAVE_WX - if (m_DebuggerFrame) - m_DebuggerFrame->Refresh(); + Host_RefreshDSPDebuggerWindow(); #endif - */ + return ector_crc; } void DSPHost_UpdateDebugger() { - /* ECTORTODO #if defined(HAVE_WX) && HAVE_WX - if (m_DebuggerFrame) - m_DebuggerFrame->Refresh(); -#endif */ + Host_RefreshDSPDebuggerWindow(); +#endif } diff --git a/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp b/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp index c2d4814756..0183001be2 100644 --- a/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp +++ b/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.cpp @@ -30,6 +30,7 @@ #include "DSP/DSPHWInterface.h" #include "DSP/disassemble.h" #include "DSPSymbols.h" +#include "Host.h" #include "AudioCommon.h" #include "Mixer.h" @@ -77,19 +78,6 @@ void DSPLLE::DoState(PointerWrap &p) p.Do(m_cycle_count); } - /* ECTORTODO -void *DllDebugger(void *_hParent, bool Show) -{ -#if defined(HAVE_WX) && HAVE_WX - m_DebuggerFrame = new DSPDebuggerLLE((wxWindow *)_hParent); - return (void *)m_DebuggerFrame; -#else - return NULL; -#endif -} - */ - - // Regular thread void DSPLLE::dsp_thread(DSPLLE *lpParameter) { @@ -109,7 +97,6 @@ void DSPLLE::dsp_thread(DSPLLE *lpParameter) } } -/* ECTORTODO void DSPLLE::DSP_DebugBreak() { #if defined(HAVE_WX) && HAVE_WX @@ -117,7 +104,6 @@ void DSPLLE::DSP_DebugBreak() // m_DebuggerFrame->DebugBreak(); #endif } -*/ void DSPLLE::Initialize(void *hWnd, bool bWii, bool bDSPThread) { @@ -157,16 +143,11 @@ void DSPLLE::Initialize(void *hWnd, bool bWii, bool bDSPThread) InitInstructionTable(); if (m_bDSPThread) - { m_hDSPThread = std::thread(dsp_thread, this); - } -/* -ECTORTODO + #if defined(HAVE_WX) && HAVE_WX - if (m_DebuggerFrame) - m_DebuggerFrame->Refresh(); + Host_RefreshDSPDebuggerWindow(); #endif - */ } void DSPLLE::DSP_StopSoundStream() diff --git a/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.h b/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.h index c41cf951e2..76cd9decb2 100644 --- a/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.h +++ b/Source/Core/Core/Src/HW/DSPLLE/DSPLLE.h @@ -43,6 +43,7 @@ public: virtual void DSP_Update(int cycles); virtual void DSP_StopSoundStream(); virtual void DSP_ClearAudioBuffer(bool mute); + void DSP_DebugBreak(); private: static void dsp_thread(DSPLLE* lpParameter); diff --git a/Source/Core/Core/Src/Host.h b/Source/Core/Core/Src/Host.h index 1c3758cd7b..029afd2a80 100644 --- a/Source/Core/Core/Src/Host.h +++ b/Source/Core/Core/Src/Host.h @@ -42,6 +42,7 @@ bool Host_GetKeyState(int keycode); void Host_GetRenderWindowSize(int& x, int& y, int& width, int& height); void Host_Message(int Id); void Host_NotifyMapLoaded(); +void Host_RefreshDSPDebuggerWindow(); void Host_RequestRenderWindowSize(int width, int height); void Host_SetWaitCursor(bool enable); void Host_SetWiiMoteConnectionState(int _State); diff --git a/Source/Core/DebuggerWX/Src/DSPDebugWindow.cpp b/Source/Core/DebuggerWX/Src/DSPDebugWindow.cpp index 2b29ae95ed..3fa6fca313 100644 --- a/Source/Core/DebuggerWX/Src/DSPDebugWindow.cpp +++ b/Source/Core/DebuggerWX/Src/DSPDebugWindow.cpp @@ -153,9 +153,15 @@ void DSPDebuggerLLE::OnChangeState(wxCommandEvent& event) m_mgr.Update(); } +void Host_RefreshDSPDebuggerWindow() +{ + if (m_DebuggerFrame) + m_DebuggerFrame->Refresh(); +} + void DSPDebuggerLLE::Refresh() { -#if defined HAVE_X11 && HAVE_X11 +#if defined __WXGTK__ if (!wxIsMainThread()) wxMutexGuiEnter(); #endif @@ -164,7 +170,7 @@ void DSPDebuggerLLE::Refresh() UpdateRegisterFlags(); UpdateState(); m_mgr.Update(); -#if defined HAVE_X11 && HAVE_X11 +#if defined __WXGTK__ if (!wxIsMainThread()) wxMutexGuiLeave(); #endif