summaryrefslogtreecommitdiff
path: root/src/hid_core
diff options
context:
space:
mode:
authorGravatar Narr the Reg2024-01-21 13:51:50 -0600
committerGravatar Narr the Reg2024-01-21 14:05:18 -0600
commit1b984738ab7cd2031237e9d97f04ce1ff1ad88bb (patch)
tree68f78d461810f018a102e400f0be6be0ba40d403 /src/hid_core
parentMerge pull request #12720 from t895/return-to-global (diff)
downloadyuzu-1b984738ab7cd2031237e9d97f04ce1ff1ad88bb.tar.gz
yuzu-1b984738ab7cd2031237e9d97f04ce1ff1ad88bb.tar.xz
yuzu-1b984738ab7cd2031237e9d97f04ce1ff1ad88bb.zip
service: hid: Implement EnableAppletForInput
Diffstat (limited to 'src/hid_core')
-rw-r--r--src/hid_core/resources/npad/npad.cpp13
-rw-r--r--src/hid_core/resources/npad/npad.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/src/hid_core/resources/npad/npad.cpp b/src/hid_core/resources/npad/npad.cpp
index 212f01429..d13a489c9 100644
--- a/src/hid_core/resources/npad/npad.cpp
+++ b/src/hid_core/resources/npad/npad.cpp
@@ -480,6 +480,10 @@ void NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing) {
480 continue; 480 continue;
481 } 481 }
482 482
483 if (!data->flag.enable_pad_input) {
484 continue;
485 }
486
483 RequestPadStateUpdate(aruid, controller.device->GetNpadIdType()); 487 RequestPadStateUpdate(aruid, controller.device->GetNpadIdType());
484 auto& pad_state = controller.npad_pad_state; 488 auto& pad_state = controller.npad_pad_state;
485 auto& libnx_state = controller.npad_libnx_state; 489 auto& libnx_state = controller.npad_libnx_state;
@@ -1316,4 +1320,13 @@ void NPad::UpdateHandheldAbstractState() {
1316 abstracted_pads[NpadIdTypeToIndex(Core::HID::NpadIdType::Handheld)].Update(); 1320 abstracted_pads[NpadIdTypeToIndex(Core::HID::NpadIdType::Handheld)].Update();
1317} 1321}
1318 1322
1323void NPad::EnableAppletToGetInput(u64 aruid) {
1324 std::scoped_lock lock{mutex};
1325 std::scoped_lock shared_lock{*applet_resource_holder.shared_mutex};
1326
1327 for (auto& abstract_pad : abstracted_pads) {
1328 abstract_pad.EnableAppletToGetInput(aruid);
1329 }
1330}
1331
1319} // namespace Service::HID 1332} // namespace Service::HID
diff --git a/src/hid_core/resources/npad/npad.h b/src/hid_core/resources/npad/npad.h
index 18b25c688..88289fa2b 100644
--- a/src/hid_core/resources/npad/npad.h
+++ b/src/hid_core/resources/npad/npad.h
@@ -153,6 +153,8 @@ public:
153 153
154 void UpdateHandheldAbstractState(); 154 void UpdateHandheldAbstractState();
155 155
156 void EnableAppletToGetInput(u64 aruid);
157
156private: 158private:
157 struct NpadControllerData { 159 struct NpadControllerData {
158 NpadInternalState* shared_memory = nullptr; 160 NpadInternalState* shared_memory = nullptr;