summaryrefslogtreecommitdiff
path: root/src/input_common/input_engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/input_common/input_engine.cpp46
1 files changed, 23 insertions, 23 deletions
diff --git a/src/input_common/input_engine.cpp b/src/input_common/input_engine.cpp
index 738022ece..a16cca33d 100644
--- a/src/input_common/input_engine.cpp
+++ b/src/input_common/input_engine.cpp
@@ -8,37 +8,37 @@
8namespace InputCommon { 8namespace InputCommon {
9 9
10void InputEngine::PreSetController(const PadIdentifier& identifier) { 10void InputEngine::PreSetController(const PadIdentifier& identifier) {
11 std::lock_guard lock{mutex}; 11 std::scoped_lock lock{mutex};
12 controller_list.try_emplace(identifier); 12 controller_list.try_emplace(identifier);
13} 13}
14 14
15void InputEngine::PreSetButton(const PadIdentifier& identifier, int button) { 15void InputEngine::PreSetButton(const PadIdentifier& identifier, int button) {
16 std::lock_guard lock{mutex}; 16 std::scoped_lock lock{mutex};
17 ControllerData& controller = controller_list.at(identifier); 17 ControllerData& controller = controller_list.at(identifier);
18 controller.buttons.try_emplace(button, false); 18 controller.buttons.try_emplace(button, false);
19} 19}
20 20
21void InputEngine::PreSetHatButton(const PadIdentifier& identifier, int button) { 21void InputEngine::PreSetHatButton(const PadIdentifier& identifier, int button) {
22 std::lock_guard lock{mutex}; 22 std::scoped_lock lock{mutex};
23 ControllerData& controller = controller_list.at(identifier); 23 ControllerData& controller = controller_list.at(identifier);
24 controller.hat_buttons.try_emplace(button, u8{0}); 24 controller.hat_buttons.try_emplace(button, u8{0});
25} 25}
26 26
27void InputEngine::PreSetAxis(const PadIdentifier& identifier, int axis) { 27void InputEngine::PreSetAxis(const PadIdentifier& identifier, int axis) {
28 std::lock_guard lock{mutex}; 28 std::scoped_lock lock{mutex};
29 ControllerData& controller = controller_list.at(identifier); 29 ControllerData& controller = controller_list.at(identifier);
30 controller.axes.try_emplace(axis, 0.0f); 30 controller.axes.try_emplace(axis, 0.0f);
31} 31}
32 32
33void InputEngine::PreSetMotion(const PadIdentifier& identifier, int motion) { 33void InputEngine::PreSetMotion(const PadIdentifier& identifier, int motion) {
34 std::lock_guard lock{mutex}; 34 std::scoped_lock lock{mutex};
35 ControllerData& controller = controller_list.at(identifier); 35 ControllerData& controller = controller_list.at(identifier);
36 controller.motions.try_emplace(motion); 36 controller.motions.try_emplace(motion);
37} 37}
38 38
39void InputEngine::SetButton(const PadIdentifier& identifier, int button, bool value) { 39void InputEngine::SetButton(const PadIdentifier& identifier, int button, bool value) {
40 { 40 {
41 std::lock_guard lock{mutex}; 41 std::scoped_lock lock{mutex};
42 ControllerData& controller = controller_list.at(identifier); 42 ControllerData& controller = controller_list.at(identifier);
43 if (!configuring) { 43 if (!configuring) {
44 controller.buttons.insert_or_assign(button, value); 44 controller.buttons.insert_or_assign(button, value);
@@ -49,7 +49,7 @@ void InputEngine::SetButton(const PadIdentifier& identifier, int button, bool va
49 49
50void InputEngine::SetHatButton(const PadIdentifier& identifier, int button, u8 value) { 50void InputEngine::SetHatButton(const PadIdentifier& identifier, int button, u8 value) {
51 { 51 {
52 std::lock_guard lock{mutex}; 52 std::scoped_lock lock{mutex};
53 ControllerData& controller = controller_list.at(identifier); 53 ControllerData& controller = controller_list.at(identifier);
54 if (!configuring) { 54 if (!configuring) {
55 controller.hat_buttons.insert_or_assign(button, value); 55 controller.hat_buttons.insert_or_assign(button, value);
@@ -60,7 +60,7 @@ void InputEngine::SetHatButton(const PadIdentifier& identifier, int button, u8 v
60 60
61void InputEngine::SetAxis(const PadIdentifier& identifier, int axis, f32 value) { 61void InputEngine::SetAxis(const PadIdentifier& identifier, int axis, f32 value) {
62 { 62 {
63 std::lock_guard lock{mutex}; 63 std::scoped_lock lock{mutex};
64 ControllerData& controller = controller_list.at(identifier); 64 ControllerData& controller = controller_list.at(identifier);
65 if (!configuring) { 65 if (!configuring) {
66 controller.axes.insert_or_assign(axis, value); 66 controller.axes.insert_or_assign(axis, value);
@@ -71,7 +71,7 @@ void InputEngine::SetAxis(const PadIdentifier& identifier, int axis, f32 value)
71 71
72void InputEngine::SetBattery(const PadIdentifier& identifier, Common::Input::BatteryLevel value) { 72void InputEngine::SetBattery(const PadIdentifier& identifier, Common::Input::BatteryLevel value) {
73 { 73 {
74 std::lock_guard lock{mutex}; 74 std::scoped_lock lock{mutex};
75 ControllerData& controller = controller_list.at(identifier); 75 ControllerData& controller = controller_list.at(identifier);
76 if (!configuring) { 76 if (!configuring) {
77 controller.battery = value; 77 controller.battery = value;
@@ -82,7 +82,7 @@ void InputEngine::SetBattery(const PadIdentifier& identifier, Common::Input::Bat
82 82
83void InputEngine::SetMotion(const PadIdentifier& identifier, int motion, const BasicMotion& value) { 83void InputEngine::SetMotion(const PadIdentifier& identifier, int motion, const BasicMotion& value) {
84 { 84 {
85 std::lock_guard lock{mutex}; 85 std::scoped_lock lock{mutex};
86 ControllerData& controller = controller_list.at(identifier); 86 ControllerData& controller = controller_list.at(identifier);
87 if (!configuring) { 87 if (!configuring) {
88 controller.motions.insert_or_assign(motion, value); 88 controller.motions.insert_or_assign(motion, value);
@@ -92,7 +92,7 @@ void InputEngine::SetMotion(const PadIdentifier& identifier, int motion, const B
92} 92}
93 93
94bool InputEngine::GetButton(const PadIdentifier& identifier, int button) const { 94bool InputEngine::GetButton(const PadIdentifier& identifier, int button) const {
95 std::lock_guard lock{mutex}; 95 std::scoped_lock lock{mutex};
96 const auto controller_iter = controller_list.find(identifier); 96 const auto controller_iter = controller_list.find(identifier);
97 if (controller_iter == controller_list.cend()) { 97 if (controller_iter == controller_list.cend()) {
98 LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(), 98 LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(),
@@ -109,7 +109,7 @@ bool InputEngine::GetButton(const PadIdentifier& identifier, int button) const {
109} 109}
110 110
111bool InputEngine::GetHatButton(const PadIdentifier& identifier, int button, u8 direction) const { 111bool InputEngine::GetHatButton(const PadIdentifier& identifier, int button, u8 direction) const {
112 std::lock_guard lock{mutex}; 112 std::scoped_lock lock{mutex};
113 const auto controller_iter = controller_list.find(identifier); 113 const auto controller_iter = controller_list.find(identifier);
114 if (controller_iter == controller_list.cend()) { 114 if (controller_iter == controller_list.cend()) {
115 LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(), 115 LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(),
@@ -126,7 +126,7 @@ bool InputEngine::GetHatButton(const PadIdentifier& identifier, int button, u8 d
126} 126}
127 127
128f32 InputEngine::GetAxis(const PadIdentifier& identifier, int axis) const { 128f32 InputEngine::GetAxis(const PadIdentifier& identifier, int axis) const {
129 std::lock_guard lock{mutex}; 129 std::scoped_lock lock{mutex};
130 const auto controller_iter = controller_list.find(identifier); 130 const auto controller_iter = controller_list.find(identifier);
131 if (controller_iter == controller_list.cend()) { 131 if (controller_iter == controller_list.cend()) {
132 LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(), 132 LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(),
@@ -143,7 +143,7 @@ f32 InputEngine::GetAxis(const PadIdentifier& identifier, int axis) const {
143} 143}
144 144
145Common::Input::BatteryLevel InputEngine::GetBattery(const PadIdentifier& identifier) const { 145Common::Input::BatteryLevel InputEngine::GetBattery(const PadIdentifier& identifier) const {
146 std::lock_guard lock{mutex}; 146 std::scoped_lock lock{mutex};
147 const auto controller_iter = controller_list.find(identifier); 147 const auto controller_iter = controller_list.find(identifier);
148 if (controller_iter == controller_list.cend()) { 148 if (controller_iter == controller_list.cend()) {
149 LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(), 149 LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(),
@@ -155,7 +155,7 @@ Common::Input::BatteryLevel InputEngine::GetBattery(const PadIdentifier& identif
155} 155}
156 156
157BasicMotion InputEngine::GetMotion(const PadIdentifier& identifier, int motion) const { 157BasicMotion InputEngine::GetMotion(const PadIdentifier& identifier, int motion) const {
158 std::lock_guard lock{mutex}; 158 std::scoped_lock lock{mutex};
159 const auto controller_iter = controller_list.find(identifier); 159 const auto controller_iter = controller_list.find(identifier);
160 if (controller_iter == controller_list.cend()) { 160 if (controller_iter == controller_list.cend()) {
161 LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(), 161 LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(),
@@ -186,7 +186,7 @@ void InputEngine::ResetAnalogState() {
186} 186}
187 187
188void InputEngine::TriggerOnButtonChange(const PadIdentifier& identifier, int button, bool value) { 188void InputEngine::TriggerOnButtonChange(const PadIdentifier& identifier, int button, bool value) {
189 std::lock_guard lock{mutex_callback}; 189 std::scoped_lock lock{mutex_callback};
190 for (const auto& poller_pair : callback_list) { 190 for (const auto& poller_pair : callback_list) {
191 const InputIdentifier& poller = poller_pair.second; 191 const InputIdentifier& poller = poller_pair.second;
192 if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Button, button)) { 192 if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Button, button)) {
@@ -214,7 +214,7 @@ void InputEngine::TriggerOnButtonChange(const PadIdentifier& identifier, int but
214} 214}
215 215
216void InputEngine::TriggerOnHatButtonChange(const PadIdentifier& identifier, int button, u8 value) { 216void InputEngine::TriggerOnHatButtonChange(const PadIdentifier& identifier, int button, u8 value) {
217 std::lock_guard lock{mutex_callback}; 217 std::scoped_lock lock{mutex_callback};
218 for (const auto& poller_pair : callback_list) { 218 for (const auto& poller_pair : callback_list) {
219 const InputIdentifier& poller = poller_pair.second; 219 const InputIdentifier& poller = poller_pair.second;
220 if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::HatButton, button)) { 220 if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::HatButton, button)) {
@@ -243,7 +243,7 @@ void InputEngine::TriggerOnHatButtonChange(const PadIdentifier& identifier, int
243} 243}
244 244
245void InputEngine::TriggerOnAxisChange(const PadIdentifier& identifier, int axis, f32 value) { 245void InputEngine::TriggerOnAxisChange(const PadIdentifier& identifier, int axis, f32 value) {
246 std::lock_guard lock{mutex_callback}; 246 std::scoped_lock lock{mutex_callback};
247 for (const auto& poller_pair : callback_list) { 247 for (const auto& poller_pair : callback_list) {
248 const InputIdentifier& poller = poller_pair.second; 248 const InputIdentifier& poller = poller_pair.second;
249 if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Analog, axis)) { 249 if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Analog, axis)) {
@@ -270,7 +270,7 @@ void InputEngine::TriggerOnAxisChange(const PadIdentifier& identifier, int axis,
270 270
271void InputEngine::TriggerOnBatteryChange(const PadIdentifier& identifier, 271void InputEngine::TriggerOnBatteryChange(const PadIdentifier& identifier,
272 [[maybe_unused]] Common::Input::BatteryLevel value) { 272 [[maybe_unused]] Common::Input::BatteryLevel value) {
273 std::lock_guard lock{mutex_callback}; 273 std::scoped_lock lock{mutex_callback};
274 for (const auto& poller_pair : callback_list) { 274 for (const auto& poller_pair : callback_list) {
275 const InputIdentifier& poller = poller_pair.second; 275 const InputIdentifier& poller = poller_pair.second;
276 if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Battery, 0)) { 276 if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Battery, 0)) {
@@ -284,7 +284,7 @@ void InputEngine::TriggerOnBatteryChange(const PadIdentifier& identifier,
284 284
285void InputEngine::TriggerOnMotionChange(const PadIdentifier& identifier, int motion, 285void InputEngine::TriggerOnMotionChange(const PadIdentifier& identifier, int motion,
286 const BasicMotion& value) { 286 const BasicMotion& value) {
287 std::lock_guard lock{mutex_callback}; 287 std::scoped_lock lock{mutex_callback};
288 for (const auto& poller_pair : callback_list) { 288 for (const auto& poller_pair : callback_list) {
289 const InputIdentifier& poller = poller_pair.second; 289 const InputIdentifier& poller = poller_pair.second;
290 if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Motion, motion)) { 290 if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Motion, motion)) {
@@ -346,18 +346,18 @@ const std::string& InputEngine::GetEngineName() const {
346} 346}
347 347
348int InputEngine::SetCallback(InputIdentifier input_identifier) { 348int InputEngine::SetCallback(InputIdentifier input_identifier) {
349 std::lock_guard lock{mutex_callback}; 349 std::scoped_lock lock{mutex_callback};
350 callback_list.insert_or_assign(last_callback_key, std::move(input_identifier)); 350 callback_list.insert_or_assign(last_callback_key, std::move(input_identifier));
351 return last_callback_key++; 351 return last_callback_key++;
352} 352}
353 353
354void InputEngine::SetMappingCallback(MappingCallback callback) { 354void InputEngine::SetMappingCallback(MappingCallback callback) {
355 std::lock_guard lock{mutex_callback}; 355 std::scoped_lock lock{mutex_callback};
356 mapping_callback = std::move(callback); 356 mapping_callback = std::move(callback);
357} 357}
358 358
359void InputEngine::DeleteCallback(int key) { 359void InputEngine::DeleteCallback(int key) {
360 std::lock_guard lock{mutex_callback}; 360 std::scoped_lock lock{mutex_callback};
361 const auto& iterator = callback_list.find(key); 361 const auto& iterator = callback_list.find(key);
362 if (iterator == callback_list.end()) { 362 if (iterator == callback_list.end()) {
363 LOG_ERROR(Input, "Tried to delete non-existent callback {}", key); 363 LOG_ERROR(Input, "Tried to delete non-existent callback {}", key);