summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
index c6f250a157..13873ac2dd 100644
--- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
@@ -102,6 +102,19 @@ void ControllerInterface::Shutdown()
if (!m_is_init)
return;
+ {
+ std::lock_guard<std::mutex> lk(m_devices_mutex);
+
+ for (const auto& d : m_devices)
+ {
+ // Set outputs to ZERO before destroying device
+ for (ciface::Core::Device::Output* o : d->Outputs())
+ o->SetState(0);
+ }
+
+ m_devices.clear();
+ }
+
#ifdef CIFACE_USE_XINPUT
ciface::XInput::DeInit();
#endif
@@ -126,17 +139,6 @@ void ControllerInterface::Shutdown()
ciface::evdev::Shutdown();
#endif
- std::lock_guard<std::mutex> lk(m_devices_mutex);
-
- for (const auto& d : m_devices)
- {
- // Set outputs to ZERO before destroying device
- for (ciface::Core::Device::Output* o : d->Outputs())
- o->SetState(0);
- }
-
- m_devices.clear();
-
m_is_init = false;
}