diff options
| author | 2024-01-21 13:51:50 -0600 | |
|---|---|---|
| committer | 2024-01-21 14:05:18 -0600 | |
| commit | 1b984738ab7cd2031237e9d97f04ce1ff1ad88bb (patch) | |
| tree | 68f78d461810f018a102e400f0be6be0ba40d403 /src/hid_core | |
| parent | Merge pull request #12720 from t895/return-to-global (diff) | |
| download | yuzu-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.cpp | 13 | ||||
| -rw-r--r-- | src/hid_core/resources/npad/npad.h | 2 |
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 | ||
| 1323 | void 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 | |||
| 156 | private: | 158 | private: |
| 157 | struct NpadControllerData { | 159 | struct NpadControllerData { |
| 158 | NpadInternalState* shared_memory = nullptr; | 160 | NpadInternalState* shared_memory = nullptr; |