Try to get dynamic plugin change working
This commit is contained in:
parent
3e24a54130
commit
c973db8e35
|
@ -115,9 +115,9 @@ void CSystemEvents::ExecuteEvents ( void )
|
|||
bLoadedSave = true;
|
||||
}
|
||||
break;
|
||||
/*case SysEvent_ChangePlugins:
|
||||
case SysEvent_ChangePlugins:
|
||||
ChangePluginFunc();
|
||||
break;*/
|
||||
break;
|
||||
case SysEvent_ChangingFullScreen:
|
||||
g_Notify->ChangeFullScreen();
|
||||
break;
|
||||
|
@ -182,6 +182,14 @@ void CSystemEvents::ExecuteEvents ( void )
|
|||
bPause = true;
|
||||
}
|
||||
break;
|
||||
case SysEvent_PauseCPU_Settings:
|
||||
if (!g_Settings->LoadBool(GameRunning_CPU_Paused))
|
||||
{
|
||||
g_Settings->SaveBool(GameRunning_CPU_Paused,true);
|
||||
g_Settings->SaveDword(GameRunning_CPU_PausedType, PauseType_Settings);
|
||||
bPause = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
g_Notify->BreakPoint(__FILE__,__LINE__);
|
||||
break;
|
||||
|
@ -194,36 +202,8 @@ void CSystemEvents::ExecuteEvents ( void )
|
|||
}
|
||||
}
|
||||
|
||||
/*void CSystemEvents::ChangePluginFunc ( void )
|
||||
void CSystemEvents::ChangePluginFunc ( void )
|
||||
{
|
||||
g_Notify->DisplayMessage(0,MSG_PLUGIN_INIT);
|
||||
if (g_Settings->LoadBool(Plugin_GFX_Changed))
|
||||
{
|
||||
g_Plugins->Reset(PLUGIN_TYPE_GFX);
|
||||
}
|
||||
if (g_Settings->LoadBool(Plugin_AUDIO_Changed))
|
||||
{
|
||||
g_Plugins->Reset(PLUGIN_TYPE_AUDIO);
|
||||
}
|
||||
if (g_Settings->LoadBool(Plugin_CONT_Changed))
|
||||
{
|
||||
g_Plugins->Reset(PLUGIN_TYPE_CONTROLLER);
|
||||
}
|
||||
if (g_Settings->LoadBool(Plugin_RSP_Changed) ||
|
||||
g_Settings->LoadBool(Plugin_AUDIO_Changed) ||
|
||||
g_Settings->LoadBool(Plugin_GFX_Changed))
|
||||
{
|
||||
g_Plugins->Reset(PLUGIN_TYPE_RSP);
|
||||
}
|
||||
g_Settings->SaveBool(Plugin_RSP_Changed, false);
|
||||
g_Settings->SaveBool(Plugin_AUDIO_Changed,false);
|
||||
g_Settings->SaveBool(Plugin_GFX_Changed, false);
|
||||
g_Settings->SaveBool(Plugin_CONT_Changed, false);
|
||||
g_Notify->RefreshMenu();
|
||||
if (!g_Plugins->Initiate())
|
||||
{
|
||||
g_Notify->DisplayMessage(5,MSG_PLUGIN_NOT_INIT);
|
||||
g_BaseSystem->m_EndEmulation = true;
|
||||
}
|
||||
g_Recompiler->ResetRecompCode();
|
||||
}*/
|
||||
m_System->PluginReset();
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ enum SystemEvent {
|
|||
SysEvent_PauseCPU_LoadGame,
|
||||
SysEvent_PauseCPU_DumpMemory,
|
||||
SysEvent_PauseCPU_SearchMemory,
|
||||
SysEvent_PauseCPU_Settings,
|
||||
SysEvent_ResumeCPU_FromMenu,
|
||||
SysEvent_ResumeCPU_AppGainedActive,
|
||||
SysEvent_ResumeCPU_AppGainedFocus,
|
||||
|
@ -32,8 +33,9 @@ enum SystemEvent {
|
|||
SysEvent_ResumeCPU_LoadGame,
|
||||
SysEvent_ResumeCPU_DumpMemory,
|
||||
SysEvent_ResumeCPU_SearchMemory,
|
||||
SysEvent_ResumeCPU_Settings,
|
||||
SysEvent_ChangingFullScreen,
|
||||
// SysEvent_ChangePlugins,
|
||||
SysEvent_ChangePlugins,
|
||||
SysEvent_SaveMachineState,
|
||||
SysEvent_LoadMachineState,
|
||||
SysEvent_Interrupt_SP,
|
||||
|
@ -66,7 +68,7 @@ private:
|
|||
CSystemEvents(const CSystemEvents&); // Disable copy constructor
|
||||
CSystemEvents& operator=(const CSystemEvents&); // Disable assignment
|
||||
|
||||
//void ChangePluginFunc( void );
|
||||
void ChangePluginFunc( void );
|
||||
|
||||
CN64System * m_System;
|
||||
EventList m_Events;
|
||||
|
|
|
@ -100,7 +100,8 @@ void CN64System::ExternalEvent ( SystemEvent action )
|
|||
case SysEvent_Interrupt_DP:
|
||||
case SysEvent_ResetCPU_Hard:
|
||||
case SysEvent_ResetCPU_Soft:
|
||||
case SysEvent_CloseCPU:
|
||||
case SysEvent_CloseCPU:
|
||||
case SysEvent_ChangePlugins:
|
||||
QueueEvent(action);
|
||||
break;
|
||||
case SysEvent_PauseCPU_FromMenu:
|
||||
|
@ -110,6 +111,7 @@ void CN64System::ExternalEvent ( SystemEvent action )
|
|||
case SysEvent_PauseCPU_LoadGame:
|
||||
case SysEvent_PauseCPU_DumpMemory:
|
||||
case SysEvent_PauseCPU_SearchMemory:
|
||||
case SysEvent_PauseCPU_Settings:
|
||||
if (!g_Settings->LoadBool(GameRunning_CPU_Paused))
|
||||
{
|
||||
QueueEvent(action);
|
||||
|
@ -155,6 +157,12 @@ void CN64System::ExternalEvent ( SystemEvent action )
|
|||
SetEvent(m_hPauseEvent);
|
||||
}
|
||||
break;
|
||||
case SysEvent_ResumeCPU_Settings:
|
||||
if (g_Settings->LoadDword(GameRunning_CPU_PausedType) == PauseType_Settings )
|
||||
{
|
||||
SetEvent(m_hPauseEvent);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
WriteTraceF(TraceError,__FUNCTION__ ": Unknown event %d",action);
|
||||
g_Notify->BreakPoint(__FILE__,__LINE__);
|
||||
|
@ -506,6 +514,39 @@ void CN64System::GameReset (void)
|
|||
}
|
||||
}
|
||||
|
||||
void CN64System::PluginReset ( void )
|
||||
{
|
||||
if (!m_Plugins->ResetInUiThread(this))
|
||||
{
|
||||
g_Notify->DisplayMessage(5,MSG_PLUGIN_NOT_INIT);
|
||||
if (g_BaseSystem)
|
||||
{
|
||||
g_BaseSystem->m_EndEmulation = true;
|
||||
}
|
||||
}
|
||||
if (m_SyncCPU)
|
||||
{
|
||||
if (!m_SyncCPU->m_Plugins->ResetInUiThread(m_SyncCPU))
|
||||
{
|
||||
g_Notify->DisplayMessage(5,MSG_PLUGIN_NOT_INIT);
|
||||
if (g_BaseSystem)
|
||||
{
|
||||
g_BaseSystem->m_EndEmulation = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
g_Notify->RefreshMenu();
|
||||
if (m_Recomp)
|
||||
{
|
||||
m_Recomp->Reset();
|
||||
}
|
||||
m_Plugins->RomOpened();
|
||||
if (m_SyncCPU)
|
||||
{
|
||||
m_SyncCPU->m_Plugins->RomOpened();
|
||||
}
|
||||
}
|
||||
|
||||
void CN64System::Reset (bool bInitReg, bool ClearMenory)
|
||||
{
|
||||
RefreshGameSettings();
|
||||
|
@ -631,7 +672,7 @@ bool CN64System::SetActiveSystem( bool bActive )
|
|||
{
|
||||
WriteTrace(TraceDebug,__FUNCTION__ ": Reseting Plugins");
|
||||
g_Notify->DisplayMessage(5,MSG_PLUGIN_INIT);
|
||||
m_Plugins->Reset();
|
||||
m_Plugins->CreatePlugins();
|
||||
bRes = m_Plugins->Initiate(this);
|
||||
if (!bRes)
|
||||
{
|
||||
|
|
|
@ -58,6 +58,7 @@ public:
|
|||
void DecreaeSpeed ( void ) { m_Limitor.DecreaeSpeed(); }
|
||||
void Reset ( bool bInitReg, bool ClearMenory );
|
||||
void GameReset ( void );
|
||||
void PluginReset ( void );
|
||||
|
||||
void Pause ( void );
|
||||
void RunRSP ( void );
|
||||
|
|
|
@ -25,6 +25,7 @@ enum PauseType
|
|||
PauseType_LoadGame,
|
||||
PauseType_DumpMemory,
|
||||
PauseType_SearchMemory,
|
||||
PauseType_Settings,
|
||||
};
|
||||
|
||||
enum CPU_TYPE {
|
||||
|
|
|
@ -111,10 +111,13 @@ bool CPlugin::Load (const char * FileName)
|
|||
{
|
||||
return false;
|
||||
}
|
||||
WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Functions loaded",PluginType());
|
||||
|
||||
if (PluginOpened)
|
||||
{
|
||||
WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Before Plugin Opened",PluginType());
|
||||
PluginOpened();
|
||||
WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): After Plugin Opened",PluginType());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -124,8 +127,10 @@ void CPlugin::RomOpened()
|
|||
if (m_RomOpen || RomOpen == NULL)
|
||||
return;
|
||||
|
||||
WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Before Rom Open",PluginType());
|
||||
RomOpen();
|
||||
m_RomOpen = true;
|
||||
WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): After Rom Open",PluginType());
|
||||
}
|
||||
|
||||
void CPlugin::RomClose()
|
||||
|
@ -133,8 +138,10 @@ void CPlugin::RomClose()
|
|||
if (!m_RomOpen)
|
||||
return;
|
||||
|
||||
WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Before Rom Close",PluginType());
|
||||
RomClosed();
|
||||
m_RomOpen = false;
|
||||
WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): After Rom Close",PluginType());
|
||||
}
|
||||
|
||||
void CPlugin::GameReset()
|
||||
|
@ -151,19 +158,19 @@ void CPlugin::GameReset()
|
|||
|
||||
void CPlugin::Close()
|
||||
{
|
||||
if (m_RomOpen) {
|
||||
RomClosed();
|
||||
m_RomOpen = false;
|
||||
}
|
||||
WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Start",PluginType());
|
||||
RomClose();
|
||||
if (m_Initilized)
|
||||
{
|
||||
CloseDLL();
|
||||
m_Initilized = false;
|
||||
}
|
||||
WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Done",PluginType());
|
||||
}
|
||||
|
||||
void CPlugin::UnloadPlugin()
|
||||
{
|
||||
WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): unloading",PluginType());
|
||||
memset(&m_PluginInfo, 0, sizeof(m_PluginInfo));
|
||||
if (m_hDll != NULL)
|
||||
{
|
||||
|
@ -182,3 +189,27 @@ void CPlugin::UnloadPlugin()
|
|||
SetSettingInfo2 = NULL;
|
||||
SetSettingInfo3 = NULL;
|
||||
}
|
||||
|
||||
const char * CPlugin::PluginType () const
|
||||
{
|
||||
switch (m_PluginInfo.Type)
|
||||
{
|
||||
case PLUGIN_TYPE_RSP: return "RSP";
|
||||
case PLUGIN_TYPE_GFX: return "GFX";
|
||||
case PLUGIN_TYPE_AUDIO: return "Audio";
|
||||
case PLUGIN_TYPE_CONTROLLER: return "Control";
|
||||
}
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
TraceType CPlugin::PluginTraceType () const
|
||||
{
|
||||
switch (m_PluginInfo.Type)
|
||||
{
|
||||
case PLUGIN_TYPE_RSP: return TraceRSP;
|
||||
case PLUGIN_TYPE_GFX: return TraceGfxPlugin;
|
||||
case PLUGIN_TYPE_AUDIO: return TraceDebug;
|
||||
case PLUGIN_TYPE_CONTROLLER: return TraceDebug;
|
||||
}
|
||||
return TraceDebug;
|
||||
}
|
||||
|
|
|
@ -34,6 +34,8 @@ public:
|
|||
protected:
|
||||
|
||||
void UnloadPlugin();
|
||||
const char * PluginType () const;
|
||||
TraceType PluginTraceType () const;
|
||||
virtual void UnloadPluginDetails() = 0;
|
||||
virtual PLUGIN_TYPE type() = 0;
|
||||
virtual bool LoadFunctions ( void ) = 0;
|
||||
|
|
|
@ -50,11 +50,6 @@ CPlugins::~CPlugins (void)
|
|||
|
||||
void CPlugins::PluginChanged ( CPlugins * _this )
|
||||
{
|
||||
if (g_Settings->LoadBool(GameRunning_CPU_Running))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
bool bGfxChange = _stricmp(_this->m_GfxFile.c_str(),g_Settings->LoadString(Game_Plugin_Gfx).c_str()) != 0;
|
||||
bool bAudioChange = _stricmp(_this->m_AudioFile.c_str(),g_Settings->LoadString(Game_Plugin_Audio).c_str()) != 0;
|
||||
bool bRspChange = _stricmp(_this->m_RSPFile.c_str(),g_Settings->LoadString(Game_Plugin_RSP).c_str()) != 0;
|
||||
|
@ -62,8 +57,19 @@ void CPlugins::PluginChanged ( CPlugins * _this )
|
|||
|
||||
if ( bGfxChange || bAudioChange || bRspChange || bContChange )
|
||||
{
|
||||
_this->Reset();
|
||||
g_Notify->RefreshMenu();
|
||||
if (g_Settings->LoadBool(GameRunning_CPU_Running))
|
||||
{
|
||||
//Ensure that base system actually exists before we go triggering the event
|
||||
if (g_BaseSystem)
|
||||
{
|
||||
g_BaseSystem->ExternalEvent(SysEvent_ChangePlugins);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_this->Reset(NULL);
|
||||
g_Notify->RefreshMenu();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -82,7 +88,7 @@ static void LoadPlugin (SettingID PluginSettingID, SettingID PluginVerSettingID,
|
|||
WriteTraceF(TraceLevel,__FUNCTION__ ": %s Loading (%s): Starting",type,(LPCTSTR)PluginFileName);
|
||||
if (plugin->Load(PluginFileName))
|
||||
{
|
||||
WriteTraceF(TraceLevel,__FUNCTION__ ": %a Current Ver: %s",type,plugin->PluginName().c_str());
|
||||
WriteTraceF(TraceLevel,__FUNCTION__ ": %s Current Ver: %s",type,plugin->PluginName().c_str());
|
||||
g_Settings->SaveString(PluginVerSettingID,plugin->PluginName().c_str());
|
||||
}
|
||||
else
|
||||
|
@ -250,19 +256,57 @@ bool CPlugins::Initiate ( CN64System * System )
|
|||
return true;
|
||||
}
|
||||
|
||||
void CPlugins::Reset ( void )
|
||||
bool CPlugins::ResetInUiThread ( CN64System * System )
|
||||
{
|
||||
return m_RenderWindow->ResetPlugins(this, System);
|
||||
}
|
||||
|
||||
bool CPlugins::Reset ( CN64System * System )
|
||||
{
|
||||
WriteTrace(TraceDebug,__FUNCTION__ ": Start");
|
||||
|
||||
bool bGfxChange = _stricmp(m_GfxFile.c_str(),g_Settings->LoadString(Game_Plugin_Gfx).c_str()) != 0;
|
||||
bool bAudioChange = _stricmp(m_AudioFile.c_str(),g_Settings->LoadString(Game_Plugin_Audio).c_str()) != 0;
|
||||
bool bRspChange = _stricmp(m_RSPFile.c_str(),g_Settings->LoadString(Game_Plugin_RSP).c_str()) != 0;
|
||||
bool bContChange = _stricmp(m_ControlFile.c_str(),g_Settings->LoadString(Game_Plugin_Controller).c_str()) != 0;
|
||||
|
||||
//if GFX and Audio has changed we also need to force reset of RSP
|
||||
if (bGfxChange || bAudioChange)
|
||||
bRspChange = true;
|
||||
|
||||
if (bGfxChange) { DestroyGfxPlugin(); }
|
||||
if (bAudioChange) { DestroyAudioPlugin(); }
|
||||
if (bRspChange) { DestroyRspPlugin(); }
|
||||
if (bContChange) { DestroyControlPlugin(); }
|
||||
|
||||
CreatePlugins();
|
||||
|
||||
if (bGfxChange)
|
||||
{
|
||||
WriteTrace(TraceGfxPlugin,__FUNCTION__ ": Gfx Initiate Starting");
|
||||
if (!m_Gfx->Initiate(System,m_RenderWindow)) { return false; }
|
||||
WriteTrace(TraceGfxPlugin,__FUNCTION__ ": Gfx Initiate Done");
|
||||
}
|
||||
if (bAudioChange)
|
||||
{
|
||||
WriteTrace(TraceDebug,__FUNCTION__ ": Audio Initiate Starting");
|
||||
if (!m_Audio->Initiate(System,m_RenderWindow)) { return false; }
|
||||
WriteTrace(TraceDebug,__FUNCTION__ ": Audio Initiate Done");
|
||||
}
|
||||
if (bContChange)
|
||||
{
|
||||
WriteTrace(TraceDebug, __FUNCTION__ ": Control Initiate Starting");
|
||||
if (!m_Control->Initiate(System,m_RenderWindow)) { return false; }
|
||||
WriteTrace(TraceDebug, __FUNCTION__ ": Control Initiate Done");
|
||||
}
|
||||
if (bRspChange)
|
||||
{
|
||||
WriteTrace(TraceRSP,__FUNCTION__ ": RSP Initiate Starting");
|
||||
if (!m_RSP->Initiate(this,System)) { return false; }
|
||||
WriteTrace(TraceRSP,__FUNCTION__ ": RSP Initiate Done");
|
||||
}
|
||||
WriteTrace(TraceDebug,__FUNCTION__ ": Done");
|
||||
return true;
|
||||
}
|
||||
|
||||
void CPlugins::ConfigPlugin ( DWORD hParent, PLUGIN_TYPE Type ) {
|
||||
|
|
|
@ -97,7 +97,9 @@ public:
|
|||
void SetRenderWindows ( CMainGui * RenderWindow, CMainGui * DummyWindow );
|
||||
void ConfigPlugin ( DWORD hParent, PLUGIN_TYPE Type );
|
||||
bool CopyPlugins ( const stdstr & DstDir ) const;
|
||||
void Reset ( void );
|
||||
void CreatePlugins ( void );
|
||||
bool Reset ( CN64System * System );
|
||||
bool ResetInUiThread ( CN64System * System );
|
||||
void GameReset ( void );
|
||||
|
||||
inline CGfxPlugin * Gfx ( void) const { return m_Gfx; };
|
||||
|
@ -112,7 +114,6 @@ private:
|
|||
|
||||
// void Reset ( PLUGIN_TYPE Type );
|
||||
|
||||
void CreatePlugins ( void );
|
||||
void CreatePluginDir ( const stdstr & DstDir ) const;
|
||||
|
||||
void DestroyGfxPlugin ( void );
|
||||
|
|
|
@ -232,20 +232,15 @@ enum SettingID {
|
|||
//Plugins
|
||||
Plugin_RSP_Current,
|
||||
Plugin_RSP_CurVer,
|
||||
Plugin_RSP_Changed,
|
||||
Plugin_GFX_Current,
|
||||
Plugin_GFX_CurVer,
|
||||
Plugin_GFX_Changed,
|
||||
Plugin_AUDIO_Current,
|
||||
Plugin_AUDIO_CurVer,
|
||||
Plugin_AUDIO_Changed,
|
||||
Plugin_CONT_Current,
|
||||
Plugin_CONT_CurVer,
|
||||
Plugin_CONT_Changed,
|
||||
Plugin_UseHleGfx,
|
||||
Plugin_UseHleAudio,
|
||||
|
||||
|
||||
//Cheats
|
||||
Cheat_Entry,
|
||||
Cheat_Active,
|
||||
|
|
|
@ -310,11 +310,6 @@ void CSettings::AddHowToHandleSetting ()
|
|||
AddHandler(Plugin_AUDIO_CurVer, new CSettingTypeApplication("Plugin","Audio Dll Ver", ""));
|
||||
AddHandler(Plugin_CONT_CurVer, new CSettingTypeApplication("Plugin","Controller Dll Ver", ""));
|
||||
|
||||
AddHandler(Plugin_RSP_Changed, new CSettingTypeTempBool(true));
|
||||
AddHandler(Plugin_GFX_Changed, new CSettingTypeTempBool(true));
|
||||
AddHandler(Plugin_AUDIO_Changed, new CSettingTypeTempBool(true));
|
||||
AddHandler(Plugin_CONT_Changed, new CSettingTypeTempBool(true));
|
||||
|
||||
AddHandler(Plugin_UseHleGfx, new CSettingTypeApplication("RSP","HLE GFX",true));
|
||||
AddHandler(Plugin_UseHleAudio, new CSettingTypeApplication("RSP","HLE Audio",false));
|
||||
|
||||
|
|
|
@ -273,21 +273,28 @@ DWORD CALLBACK AboutIniBoxProc (HWND WndHandle, DWORD uMsg, DWORD wParam, DWORD
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
bool CMainGui::InitiatePlugins (void)
|
||||
bool CMainGui::ResetPlugins (CPlugins * plugins, CN64System * System)
|
||||
{
|
||||
/*HANDLE hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);
|
||||
RESET_PLUGIN info;
|
||||
info.system = System;
|
||||
info.plugins = plugins;
|
||||
info.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);
|
||||
bool bRes = true;
|
||||
if (hEvent)
|
||||
if (info.hEvent)
|
||||
{
|
||||
PostMessage((HWND)m_hMainWindow,WM_INIATE_PLUGIN,(WPARAM)&bRes,(LPARAM)hEvent);
|
||||
DWORD dwRes = WaitForSingleObject(hEvent,5000);
|
||||
CloseHandle(hEvent);
|
||||
PostMessage((HWND)m_hMainWindow,WM_RESET_PLUGIN,(WPARAM)&bRes,(LPARAM)&info);
|
||||
#ifdef _DEBUG
|
||||
DWORD dwRes = WaitForSingleObject(info.hEvent,INFINITE);
|
||||
#else
|
||||
DWORD dwRes = WaitForSingleObject(info.hEvent,5000);
|
||||
#endif
|
||||
dwRes = dwRes;
|
||||
CloseHandle(info.hEvent);
|
||||
} else {
|
||||
WriteTrace(TraceError,__FUNCTION__ ": Failed to create event");
|
||||
bRes = false;
|
||||
}
|
||||
return bRes;*/
|
||||
return false;
|
||||
return bRes;
|
||||
}
|
||||
|
||||
void CMainGui::BringToTop (void) {
|
||||
|
@ -757,15 +764,14 @@ DWORD CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DWOR
|
|||
_this->RomBrowserToTop();
|
||||
}
|
||||
break;
|
||||
/*case WM_INIATE_PLUGIN:
|
||||
case WM_RESET_PLUGIN:
|
||||
{
|
||||
bool * bRes = (bool *)wParam;
|
||||
HANDLE hEvent = (HANDLE)lParam;
|
||||
RESET_PLUGIN * info = (RESET_PLUGIN *)lParam;
|
||||
|
||||
*bRes = g_Plugins->InitiateMainThread();
|
||||
SetEvent(hEvent);
|
||||
info->res = info->plugins->Reset(info->system);
|
||||
SetEvent(info->hEvent);
|
||||
}
|
||||
break;*/
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
{
|
||||
CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd,"Class");
|
||||
|
|
|
@ -21,7 +21,7 @@ class CriticalSection;
|
|||
enum {
|
||||
WM_HIDE_CUROSR = WM_USER + 10,
|
||||
WM_MAKE_FOCUS = WM_USER + 17,
|
||||
//WM_INIATE_PLUGIN = WM_USER + 18,
|
||||
WM_RESET_PLUGIN = WM_USER + 18,
|
||||
WM_BORWSER_TOP = WM_USER + 40,
|
||||
};
|
||||
|
||||
|
@ -31,6 +31,13 @@ class CMainGui :
|
|||
{
|
||||
enum { StatusBarID = 400 };
|
||||
|
||||
typedef struct
|
||||
{
|
||||
CN64System * system;
|
||||
CPlugins * plugins;
|
||||
HANDLE hEvent;
|
||||
bool res;
|
||||
} RESET_PLUGIN;
|
||||
public:
|
||||
CMainGui ( bool bMainWindow, const char * WindowTitle = "" );
|
||||
~CMainGui ( void );
|
||||
|
@ -68,7 +75,7 @@ public:
|
|||
void AboutBox ( void );
|
||||
|
||||
//Plugins
|
||||
bool InitiatePlugins ( void );
|
||||
bool ResetPlugins ( CPlugins * plugins, CN64System * System );
|
||||
|
||||
//Get Window Handle
|
||||
inline HWND GetHandle ( void ) const { return m_hMainWindow; }
|
||||
|
|
|
@ -22,7 +22,17 @@ CSettingConfig::~CSettingConfig ()
|
|||
|
||||
void CSettingConfig::Display(void * ParentWindow)
|
||||
{
|
||||
if (g_BaseSystem)
|
||||
{
|
||||
g_BaseSystem->ExternalEvent(SysEvent_PauseCPU_Settings);
|
||||
}
|
||||
|
||||
DoModal((HWND)ParentWindow);
|
||||
|
||||
if (g_BaseSystem)
|
||||
{
|
||||
g_BaseSystem->ExternalEvent(SysEvent_ResumeCPU_Settings);
|
||||
}
|
||||
}
|
||||
|
||||
void CSettingConfig::UpdateAdvanced ( bool AdvancedMode )
|
||||
|
|
|
@ -264,15 +264,6 @@ void CGamePluginPage::ApplyComboBoxes ( void )
|
|||
} else {
|
||||
g_Settings->DeleteSetting(cb_iter->first);
|
||||
}
|
||||
switch (cb_iter->first)
|
||||
{
|
||||
case Game_EditPlugin_RSP: g_Settings->SaveBool(Plugin_RSP_Changed,true); break;
|
||||
case Game_EditPlugin_Gfx: g_Settings->SaveBool(Plugin_GFX_Changed,true); break;
|
||||
case Game_EditPlugin_Audio: g_Settings->SaveBool(Plugin_AUDIO_Changed,true); break;
|
||||
case Game_EditPlugin_Contr: g_Settings->SaveBool(Plugin_CONT_Changed,true); break;
|
||||
default:
|
||||
Notify().BreakPoint(__FILE__,__LINE__);
|
||||
}
|
||||
}
|
||||
if (ComboBox->IsReset())
|
||||
{
|
||||
|
|
|
@ -247,15 +247,6 @@ void COptionPluginPage::ApplyComboBoxes ( void )
|
|||
const CPluginList::PLUGIN * Plugin = *PluginPtr;
|
||||
|
||||
g_Settings->SaveString(cb_iter->first,Plugin->FileName.c_str());
|
||||
switch (Plugin->Info.Type)
|
||||
{
|
||||
case PLUGIN_TYPE_RSP: g_Settings->SaveBool(Plugin_RSP_Changed,true); break;
|
||||
case PLUGIN_TYPE_GFX: g_Settings->SaveBool(Plugin_GFX_Changed,true); break;
|
||||
case PLUGIN_TYPE_AUDIO: g_Settings->SaveBool(Plugin_AUDIO_Changed,true); break;
|
||||
case PLUGIN_TYPE_CONTROLLER: g_Settings->SaveBool(Plugin_CONT_Changed,true); break;
|
||||
default:
|
||||
g_Notify->BreakPoint(__FILE__,__LINE__);
|
||||
}
|
||||
}
|
||||
if (ComboBox->IsReset())
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue