summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp7
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ControllerInterface.h3
2 files changed, 9 insertions, 1 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
index 1330cb1e0a..a3c14a0ab5 100644
--- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
@@ -44,7 +44,7 @@ ControllerInterface g_controller_interface;
void ControllerInterface::Initialize(void* const hwnd)
{
if (m_is_init)
- return;
+ DeInit();
m_hwnd = hwnd;
@@ -102,6 +102,11 @@ void ControllerInterface::Shutdown()
delete d;
}
+ DeInit();
+}
+
+void ControllerInterface::DeInit()
+{
m_devices.clear();
#ifdef CIFACE_USE_XINPUT
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
index 9ab8427ad2..1b2c93951f 100644
--- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
+++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
@@ -117,6 +117,9 @@ public:
void Initialize(void* const hwnd);
void Reinitialize();
void Shutdown();
+
+ void DeInit();
+
bool IsInit() const { return m_is_init; }
void UpdateReference(ControlReference* control, const ciface::Core::DeviceQualifier& default_device) const;