summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface/XInput
diff options
context:
space:
mode:
authorFiloppi <filippotarpini@hotmail.it>2023-05-24 22:58:30 +0300
committerFiloppi <filippotarpini@hotmail.it>2023-12-18 21:45:22 +0200
commite456bef163c1b667ff5a045a4bda66b30326ae90 (patch)
treeec2483dc88b79eb0ec9f510e31d692b86c693b6e /Source/Core/InputCommon/ControllerInterface/XInput
parente498759d1425a64ecf19524dc3196f103354e033 (diff)
Input: Improve Controller Interface devices threading
This specific issue was already addressed by https://github.com/dolphin-emu/dolphin/pull/11635 though I felt like there was something more we could do, and wasn't too happy with the likelihood of devices update calls being skipped (due to `m_devices_population_mutex` being locked).
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/XInput')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/XInput/XInput.cpp4
-rw-r--r--Source/Core/InputCommon/ControllerInterface/XInput/XInput.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/XInput/XInput.cpp b/Source/Core/InputCommon/ControllerInterface/XInput/XInput.cpp
index 82769cb4f4..ebe79f8984 100644
--- a/Source/Core/InputCommon/ControllerInterface/XInput/XInput.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/XInput/XInput.cpp
@@ -264,7 +264,7 @@ std::string Device::GetSource() const
return "XInput";
}
-void Device::UpdateInput()
+Core::DeviceRemoval Device::UpdateInput()
{
PXInputGetState(m_index, &m_state_in);
@@ -286,6 +286,8 @@ void Device::UpdateInput()
break;
}
}
+
+ return Core::DeviceRemoval::Keep;
}
void Device::UpdateMotors()
diff --git a/Source/Core/InputCommon/ControllerInterface/XInput/XInput.h b/Source/Core/InputCommon/ControllerInterface/XInput/XInput.h
index 1673f795ed..95fe6a3c6f 100644
--- a/Source/Core/InputCommon/ControllerInterface/XInput/XInput.h
+++ b/Source/Core/InputCommon/ControllerInterface/XInput/XInput.h
@@ -33,7 +33,7 @@ public:
std::optional<int> GetPreferredId() const override;
int GetSortPriority() const override { return -2; }
- void UpdateInput() override;
+ Core::DeviceRemoval UpdateInput() override;
void UpdateMotors();