Merge pull request #756 from Frank-74/CN64TimeCritical-Setting

CN64 time critical thread priority setting
This commit is contained in:
zilmar 2015-11-14 15:33:29 +11:00
commit d6b124962a
4 changed files with 14 additions and 3 deletions

View File

@ -375,6 +375,11 @@ void CN64System::StartEmulation(bool NewThread)
void CN64System::StartEmulationThread(ThreadInfo * Info) void CN64System::StartEmulationThread(ThreadInfo * Info)
{ {
if (g_Settings->LoadBool(Setting_CN64TimeCritical))
{
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL);
}
CoInitialize(NULL); CoInitialize(NULL);
EmulationStarting(*Info->ThreadHandle, Info->ThreadID); EmulationStarting(*Info->ThreadHandle, Info->ThreadID);

View File

@ -182,7 +182,11 @@ void CAudioPlugin::DacrateChanged(SYSTEM_TYPE Type)
void CAudioPlugin::AudioThread(CAudioPlugin * _this) { void CAudioPlugin::AudioThread(CAudioPlugin * _this) {
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL); SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
for (;;) if (g_Settings->LoadBool(Setting_CN64TimeCritical))
{
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_HIGHEST);
}
for (;;)
{ {
_this->AiUpdate(true); _this->AiUpdate(true);
} }

View File

@ -109,6 +109,7 @@ void CSettings::AddHowToHandleSetting()
AddHandler(Setting_ApplicationName, new CSettingTypeTempString("")); AddHandler(Setting_ApplicationName, new CSettingTypeTempString(""));
AddHandler(Setting_UseFromRegistry, new CSettingTypeApplication("Settings", "Use Registry", (uint32_t)false)); AddHandler(Setting_UseFromRegistry, new CSettingTypeApplication("Settings", "Use Registry", (uint32_t)false));
AddHandler(Setting_RdbEditor, new CSettingTypeApplication("", "Rdb Editor", false)); AddHandler(Setting_RdbEditor, new CSettingTypeApplication("", "Rdb Editor", false));
AddHandler(Setting_CN64TimeCritical,new CSettingTypeApplication("","CN64TimeCritical",false));
AddHandler(Setting_PluginPageFirst, new CSettingTypeApplication("", "Plugin Page First", false)); AddHandler(Setting_PluginPageFirst, new CSettingTypeApplication("", "Plugin Page First", false));
AddHandler(Setting_DisableScrSaver, new CSettingTypeApplication("", "Disable Screen Saver", (uint32_t)true)); AddHandler(Setting_DisableScrSaver, new CSettingTypeApplication("", "Disable Screen Saver", (uint32_t)true));
AddHandler(Setting_AutoSleep, new CSettingTypeApplication("", "Auto Sleep", (uint32_t)true)); AddHandler(Setting_AutoSleep, new CSettingTypeApplication("", "Auto Sleep", (uint32_t)true));

View File

@ -48,6 +48,7 @@ enum SettingID
Setting_ApplicationName, Setting_ApplicationName,
Setting_UseFromRegistry, Setting_UseFromRegistry,
Setting_RdbEditor, Setting_RdbEditor,
Setting_CN64TimeCritical,
Setting_PluginPageFirst, Setting_PluginPageFirst,
Setting_DisableScrSaver, Setting_DisableScrSaver,
Setting_AutoSleep, Setting_AutoSleep,