diff options
| author | 2024-01-07 20:41:06 -0500 | |
|---|---|---|
| committer | 2024-01-07 20:41:06 -0500 | |
| commit | 2a4ac7cfac9ebdc916a95dbc576a850162886b13 (patch) | |
| tree | 152196b6412c5ef7118810fbceb92804f079d4ba /src/hid_core/resources | |
| parent | Merge pull request #12599 from german77/settings (diff) | |
| parent | service: hid: Implement GetLastActiveNpad (diff) | |
| download | yuzu-2a4ac7cfac9ebdc916a95dbc576a850162886b13.tar.gz yuzu-2a4ac7cfac9ebdc916a95dbc576a850162886b13.tar.xz yuzu-2a4ac7cfac9ebdc916a95dbc576a850162886b13.zip | |
Merge pull request #12600 from german77/npad-impl
service: hid: Hook interface implementations
Diffstat (limited to 'src/hid_core/resources')
| -rw-r--r-- | src/hid_core/resources/npad/npad.cpp | 45 | ||||
| -rw-r--r-- | src/hid_core/resources/npad/npad.h | 12 |
2 files changed, 57 insertions, 0 deletions
diff --git a/src/hid_core/resources/npad/npad.cpp b/src/hid_core/resources/npad/npad.cpp index 97f31d26e..1f8a0f8ab 100644 --- a/src/hid_core/resources/npad/npad.cpp +++ b/src/hid_core/resources/npad/npad.cpp | |||
| @@ -1344,4 +1344,49 @@ AppletDetailedUiType NPad::GetAppletDetailedUiType(Core::HID::NpadIdType npad_id | |||
| 1344 | }; | 1344 | }; |
| 1345 | } | 1345 | } |
| 1346 | 1346 | ||
| 1347 | Result NPad::SetNpadCaptureButtonAssignment(u64 aruid, Core::HID::NpadStyleSet npad_style_set, | ||
| 1348 | Core::HID::NpadButton button_assignment) { | ||
| 1349 | std::scoped_lock lock{mutex}; | ||
| 1350 | return npad_resource.SetNpadCaptureButtonAssignment(aruid, npad_style_set, button_assignment); | ||
| 1351 | } | ||
| 1352 | |||
| 1353 | Result NPad::ClearNpadCaptureButtonAssignment(u64 aruid) { | ||
| 1354 | std::scoped_lock lock{mutex}; | ||
| 1355 | return npad_resource.ClearNpadCaptureButtonAssignment(aruid); | ||
| 1356 | } | ||
| 1357 | |||
| 1358 | std::size_t NPad::GetNpadCaptureButtonAssignment(std::span<Core::HID::NpadButton> out_list, | ||
| 1359 | u64 aruid) const { | ||
| 1360 | std::scoped_lock lock{mutex}; | ||
| 1361 | return npad_resource.GetNpadCaptureButtonAssignment(out_list, aruid); | ||
| 1362 | } | ||
| 1363 | |||
| 1364 | Result NPad::SetNpadSystemExtStateEnabled(u64 aruid, bool is_enabled) { | ||
| 1365 | std::scoped_lock lock{mutex}; | ||
| 1366 | const auto result = npad_resource.SetNpadSystemExtStateEnabled(aruid, is_enabled); | ||
| 1367 | |||
| 1368 | if (result.IsSuccess()) { | ||
| 1369 | std::scoped_lock shared_lock{*applet_resource_holder.shared_mutex}; | ||
| 1370 | // TODO: abstracted_pad->EnableAppletToGetInput(aruid); | ||
| 1371 | } | ||
| 1372 | |||
| 1373 | return result; | ||
| 1374 | } | ||
| 1375 | |||
| 1376 | Result NPad::AssigningSingleOnSlSrPress(u64 aruid, bool is_enabled) { | ||
| 1377 | std::scoped_lock lock{mutex}; | ||
| 1378 | bool is_currently_enabled{}; | ||
| 1379 | Result result = npad_resource.IsAssigningSingleOnSlSrPressEnabled(is_currently_enabled, aruid); | ||
| 1380 | if (result.IsSuccess() && is_enabled != is_currently_enabled) { | ||
| 1381 | result = npad_resource.SetAssigningSingleOnSlSrPress(aruid, is_enabled); | ||
| 1382 | } | ||
| 1383 | return result; | ||
| 1384 | } | ||
| 1385 | |||
| 1386 | Result NPad::GetLastActiveNpad(Core::HID::NpadIdType& out_npad_id) const { | ||
| 1387 | std::scoped_lock lock{mutex}; | ||
| 1388 | out_npad_id = hid_core.GetLastActiveController(); | ||
| 1389 | return ResultSuccess; | ||
| 1390 | } | ||
| 1391 | |||
| 1347 | } // namespace Service::HID | 1392 | } // namespace Service::HID |
diff --git a/src/hid_core/resources/npad/npad.h b/src/hid_core/resources/npad/npad.h index 58f8c7acf..01f3dabb1 100644 --- a/src/hid_core/resources/npad/npad.h +++ b/src/hid_core/resources/npad/npad.h | |||
| @@ -149,6 +149,18 @@ public: | |||
| 149 | 149 | ||
| 150 | AppletDetailedUiType GetAppletDetailedUiType(Core::HID::NpadIdType npad_id); | 150 | AppletDetailedUiType GetAppletDetailedUiType(Core::HID::NpadIdType npad_id); |
| 151 | 151 | ||
| 152 | Result SetNpadCaptureButtonAssignment(u64 aruid, Core::HID::NpadStyleSet npad_style_set, | ||
| 153 | Core::HID::NpadButton button_assignment); | ||
| 154 | Result ClearNpadCaptureButtonAssignment(u64 aruid); | ||
| 155 | std::size_t GetNpadCaptureButtonAssignment(std::span<Core::HID::NpadButton> out_list, | ||
| 156 | u64 aruid) const; | ||
| 157 | |||
| 158 | Result SetNpadSystemExtStateEnabled(u64 aruid, bool is_enabled); | ||
| 159 | |||
| 160 | Result AssigningSingleOnSlSrPress(u64 aruid, bool is_enabled); | ||
| 161 | |||
| 162 | Result GetLastActiveNpad(Core::HID::NpadIdType& out_npad_id) const; | ||
| 163 | |||
| 152 | private: | 164 | private: |
| 153 | struct VibrationData { | 165 | struct VibrationData { |
| 154 | bool device_mounted{}; | 166 | bool device_mounted{}; |