2012-12-19 09:30:18 +00:00
|
|
|
/****************************************************************************
|
|
|
|
* *
|
|
|
|
* Project 64 - A Nintendo 64 emulator. *
|
|
|
|
* http://www.pj64-emu.com/ *
|
|
|
|
* Copyright (C) 2012 Project64. All rights reserved. *
|
|
|
|
* *
|
|
|
|
* License: *
|
|
|
|
* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html *
|
|
|
|
* *
|
|
|
|
****************************************************************************/
|
2012-09-28 20:07:45 +00:00
|
|
|
#include "stdafx.h"
|
|
|
|
|
|
|
|
int CDebugSettings::m_RefCount = 0;
|
|
|
|
|
|
|
|
bool CDebugSettings::m_bHaveDebugger = false;
|
|
|
|
bool CDebugSettings::m_bLogX86Code = false;
|
|
|
|
bool CDebugSettings::m_bShowTLBMisses = false;
|
2012-09-30 13:07:00 +00:00
|
|
|
bool CDebugSettings::m_bShowDivByZero = false;
|
2012-09-28 20:07:45 +00:00
|
|
|
|
|
|
|
CDebugSettings::CDebugSettings()
|
|
|
|
{
|
|
|
|
m_RefCount += 1;
|
|
|
|
if (m_RefCount == 1)
|
|
|
|
{
|
2012-11-17 01:02:04 +00:00
|
|
|
g_Settings->RegisterChangeCB(Debugger_Enabled,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
|
|
|
|
g_Settings->RegisterChangeCB(Debugger_GenerateLogFiles,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
|
|
|
|
g_Settings->RegisterChangeCB(Debugger_ShowTLBMisses,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
|
|
|
|
g_Settings->RegisterChangeCB(Debugger_ShowDivByZero,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
|
2012-09-28 20:07:45 +00:00
|
|
|
|
|
|
|
RefreshSettings();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
CDebugSettings::~CDebugSettings()
|
|
|
|
{
|
|
|
|
m_RefCount -= 1;
|
|
|
|
if (m_RefCount == 0)
|
|
|
|
{
|
2012-11-17 01:02:04 +00:00
|
|
|
g_Settings->UnregisterChangeCB(Debugger_Enabled,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
|
|
|
|
g_Settings->UnregisterChangeCB(Debugger_GenerateLogFiles,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
|
|
|
|
g_Settings->UnregisterChangeCB(Debugger_ShowTLBMisses,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
|
|
|
|
g_Settings->UnregisterChangeCB(Debugger_ShowDivByZero,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
|
2012-09-28 20:07:45 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void CDebugSettings::RefreshSettings()
|
|
|
|
{
|
2012-11-17 01:02:04 +00:00
|
|
|
m_bHaveDebugger = g_Settings->LoadBool(Debugger_Enabled);
|
|
|
|
m_bLogX86Code = m_bHaveDebugger && g_Settings->LoadBool(Debugger_GenerateLogFiles);
|
|
|
|
m_bShowTLBMisses = m_bHaveDebugger && g_Settings->LoadBool(Debugger_ShowTLBMisses);
|
|
|
|
m_bShowDivByZero = m_bHaveDebugger && g_Settings->LoadBool(Debugger_ShowDivByZero);
|
2012-09-28 20:07:45 +00:00
|
|
|
}
|