Fixed the crash that would occur when the Refresh button was pressed in the controllers config.

- Simplified the locking mechanism when controllers were updated
- Reloaded the config of the controls instead of re-initialising the control plugins
- Fixed controls being unresponsive after the Refresh button was pressed
- Disables the hotkeys while the controller config is open
This commit is contained in:
skidau
2015-03-05 19:49:10 +11:00
parent b446ea0132
commit 780eef68f6
16 changed files with 93 additions and 104 deletions

View File

@ -55,6 +55,12 @@ void Initialize(void* const hwnd, bool wait)
Movie::ChangeWiiPads();
}
void LoadConfig()
{
s_config.LoadConfig(true);
}
void Resume()
{
WiimoteReal::Resume();
@ -113,7 +119,7 @@ void Update(int _number)
//PanicAlert( "Wiimote_Update" );
// TODO: change this to a try_to_lock, and make it give empty input on failure
std::lock_guard<std::recursive_mutex> lk(s_config.controls_lock);
std::unique_lock<std::recursive_mutex> lk(s_config.controls_lock, std::try_to_lock);
if (WIIMOTE_SRC_EMU & g_wiimote_sources[_number])
((WiimoteEmu::Wiimote*)s_config.controllers[_number])->Update();