diff options
| -rw-r--r-- | src/core/hle/service/hid/hid.cpp | 93 | ||||
| -rw-r--r-- | src/core/hle/service/hid/hid.h | 13 |
2 files changed, 85 insertions, 21 deletions
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index 72a050de2..1ee99bfeb 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp | |||
| @@ -230,15 +230,15 @@ Hid::Hid(Core::System& system) : ServiceFramework("hid"), system(system) { | |||
| 230 | {211, nullptr, "IsVibrationDeviceMounted"}, | 230 | {211, nullptr, "IsVibrationDeviceMounted"}, |
| 231 | {300, &Hid::ActivateConsoleSixAxisSensor, "ActivateConsoleSixAxisSensor"}, | 231 | {300, &Hid::ActivateConsoleSixAxisSensor, "ActivateConsoleSixAxisSensor"}, |
| 232 | {301, &Hid::StartConsoleSixAxisSensor, "StartConsoleSixAxisSensor"}, | 232 | {301, &Hid::StartConsoleSixAxisSensor, "StartConsoleSixAxisSensor"}, |
| 233 | {302, nullptr, "StopConsoleSixAxisSensor"}, | 233 | {302, &Hid::StopConsoleSixAxisSensor, "StopConsoleSixAxisSensor"}, |
| 234 | {303, nullptr, "ActivateSevenSixAxisSensor"}, | 234 | {303, &Hid::ActivateSevenSixAxisSensor, "ActivateSevenSixAxisSensor"}, |
| 235 | {304, nullptr, "StartSevenSixAxisSensor"}, | 235 | {304, &Hid::StartSevenSixAxisSensor, "StartSevenSixAxisSensor"}, |
| 236 | {305, &Hid::StopSevenSixAxisSensor, "StopSevenSixAxisSensor"}, | 236 | {305, &Hid::StopSevenSixAxisSensor, "StopSevenSixAxisSensor"}, |
| 237 | {306, &Hid::InitializeSevenSixAxisSensor, "InitializeSevenSixAxisSensor"}, | 237 | {306, &Hid::InitializeSevenSixAxisSensor, "InitializeSevenSixAxisSensor"}, |
| 238 | {307, nullptr, "FinalizeSevenSixAxisSensor"}, | 238 | {307, &Hid::FinalizeSevenSixAxisSensor, "FinalizeSevenSixAxisSensor"}, |
| 239 | {308, nullptr, "SetSevenSixAxisSensorFusionStrength"}, | 239 | {308, nullptr, "SetSevenSixAxisSensorFusionStrength"}, |
| 240 | {309, nullptr, "GetSevenSixAxisSensorFusionStrength"}, | 240 | {309, nullptr, "GetSevenSixAxisSensorFusionStrength"}, |
| 241 | {310, nullptr, "ResetSevenSixAxisSensorTimestamp"}, | 241 | {310, &Hid::ResetSevenSixAxisSensorTimestamp, "ResetSevenSixAxisSensorTimestamp"}, |
| 242 | {400, nullptr, "IsUsbFullKeyControllerEnabled"}, | 242 | {400, nullptr, "IsUsbFullKeyControllerEnabled"}, |
| 243 | {401, nullptr, "EnableUsbFullKeyController"}, | 243 | {401, nullptr, "EnableUsbFullKeyController"}, |
| 244 | {402, nullptr, "IsUsbFullKeyControllerConnected"}, | 244 | {402, nullptr, "IsUsbFullKeyControllerConnected"}, |
| @@ -374,6 +374,15 @@ void Hid::ActivateKeyboard(Kernel::HLERequestContext& ctx) { | |||
| 374 | rb.Push(RESULT_SUCCESS); | 374 | rb.Push(RESULT_SUCCESS); |
| 375 | } | 375 | } |
| 376 | 376 | ||
| 377 | void Hid::SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx) { | ||
| 378 | IPC::RequestParser rp{ctx}; | ||
| 379 | const auto flags{rp.Pop<u32>()}; | ||
| 380 | LOG_WARNING(Service_HID, "(STUBBED) called. flags={}", flags); | ||
| 381 | |||
| 382 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 383 | rb.Push(RESULT_SUCCESS); | ||
| 384 | } | ||
| 385 | |||
| 377 | void Hid::ActivateGesture(Kernel::HLERequestContext& ctx) { | 386 | void Hid::ActivateGesture(Kernel::HLERequestContext& ctx) { |
| 378 | IPC::RequestParser rp{ctx}; | 387 | IPC::RequestParser rp{ctx}; |
| 379 | const auto unknown{rp.Pop<u32>()}; | 388 | const auto unknown{rp.Pop<u32>()}; |
| @@ -413,6 +422,18 @@ void Hid::StartSixAxisSensor(Kernel::HLERequestContext& ctx) { | |||
| 413 | rb.Push(RESULT_SUCCESS); | 422 | rb.Push(RESULT_SUCCESS); |
| 414 | } | 423 | } |
| 415 | 424 | ||
| 425 | void Hid::StopSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||
| 426 | IPC::RequestParser rp{ctx}; | ||
| 427 | const auto handle{rp.Pop<u32>()}; | ||
| 428 | const auto applet_resource_user_id{rp.Pop<u64>()}; | ||
| 429 | |||
| 430 | LOG_WARNING(Service_HID, "(STUBBED) called, handle={}, applet_resource_user_id={}", handle, | ||
| 431 | applet_resource_user_id); | ||
| 432 | |||
| 433 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 434 | rb.Push(RESULT_SUCCESS); | ||
| 435 | } | ||
| 436 | |||
| 416 | void Hid::SetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { | 437 | void Hid::SetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { |
| 417 | IPC::RequestParser rp{ctx}; | 438 | IPC::RequestParser rp{ctx}; |
| 418 | const auto handle{rp.Pop<u32>()}; | 439 | const auto handle{rp.Pop<u32>()}; |
| @@ -832,33 +853,35 @@ void Hid::StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { | |||
| 832 | rb.Push(RESULT_SUCCESS); | 853 | rb.Push(RESULT_SUCCESS); |
| 833 | } | 854 | } |
| 834 | 855 | ||
| 835 | void Hid::StopSixAxisSensor(Kernel::HLERequestContext& ctx) { | 856 | void Hid::StopConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { |
| 836 | IPC::RequestParser rp{ctx}; | 857 | IPC::RequestParser rp{ctx}; |
| 837 | const auto handle{rp.Pop<u32>()}; | 858 | const auto handle{rp.Pop<u32>()}; |
| 859 | const auto applet_resource_user_id{rp.Pop<u64>()}; | ||
| 838 | 860 | ||
| 839 | LOG_WARNING(Service_HID, "(STUBBED) called, handle={}", handle); | 861 | LOG_WARNING(Service_HID, "(STUBBED) called, handle={}, applet_resource_user_id={}", handle, |
| 862 | applet_resource_user_id); | ||
| 840 | 863 | ||
| 841 | IPC::ResponseBuilder rb{ctx, 2}; | 864 | IPC::ResponseBuilder rb{ctx, 2}; |
| 842 | rb.Push(RESULT_SUCCESS); | 865 | rb.Push(RESULT_SUCCESS); |
| 843 | } | 866 | } |
| 844 | 867 | ||
| 845 | void Hid::SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx) { | 868 | void Hid::ActivateSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { |
| 846 | IPC::RequestParser rp{ctx}; | 869 | IPC::RequestParser rp{ctx}; |
| 847 | const auto applet_resource_user_id{rp.Pop<u64>()}; | 870 | const auto applet_resource_user_id{rp.Pop<u64>()}; |
| 848 | const auto unknown{rp.Pop<u32>()}; | ||
| 849 | 871 | ||
| 850 | LOG_WARNING(Service_HID, "(STUBBED) called, applet_resource_user_id={}, unknown={}", | 872 | LOG_WARNING(Service_HID, "(STUBBED) called, applet_resource_user_id={}", |
| 851 | applet_resource_user_id, unknown); | 873 | applet_resource_user_id); |
| 852 | 874 | ||
| 853 | IPC::ResponseBuilder rb{ctx, 2}; | 875 | IPC::ResponseBuilder rb{ctx, 2}; |
| 854 | rb.Push(RESULT_SUCCESS); | 876 | rb.Push(RESULT_SUCCESS); |
| 855 | } | 877 | } |
| 856 | 878 | ||
| 857 | void Hid::SetPalmaBoostMode(Kernel::HLERequestContext& ctx) { | 879 | void Hid::StartSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { |
| 858 | IPC::RequestParser rp{ctx}; | 880 | IPC::RequestParser rp{ctx}; |
| 859 | const auto unknown{rp.Pop<u32>()}; | 881 | const auto applet_resource_user_id{rp.Pop<u64>()}; |
| 860 | 882 | ||
| 861 | LOG_WARNING(Service_HID, "(STUBBED) called, unknown={}", unknown); | 883 | LOG_WARNING(Service_HID, "(STUBBED) called, applet_resource_user_id={}", |
| 884 | applet_resource_user_id); | ||
| 862 | 885 | ||
| 863 | IPC::ResponseBuilder rb{ctx, 2}; | 886 | IPC::ResponseBuilder rb{ctx, 2}; |
| 864 | rb.Push(RESULT_SUCCESS); | 887 | rb.Push(RESULT_SUCCESS); |
| @@ -882,10 +905,46 @@ void Hid::InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | |||
| 882 | rb.Push(RESULT_SUCCESS); | 905 | rb.Push(RESULT_SUCCESS); |
| 883 | } | 906 | } |
| 884 | 907 | ||
| 885 | void Hid::SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx) { | 908 | void Hid::FinalizeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { |
| 886 | IPC::RequestParser rp{ctx}; | 909 | IPC::RequestParser rp{ctx}; |
| 887 | const auto flags{rp.Pop<u32>()}; | 910 | const auto applet_resource_user_id{rp.Pop<u64>()}; |
| 888 | LOG_WARNING(Service_HID, "(STUBBED) called. flags={}", flags); | 911 | |
| 912 | LOG_WARNING(Service_HID, "(STUBBED) called, applet_resource_user_id={}", | ||
| 913 | applet_resource_user_id); | ||
| 914 | |||
| 915 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 916 | rb.Push(RESULT_SUCCESS); | ||
| 917 | } | ||
| 918 | |||
| 919 | void Hid::ResetSevenSixAxisSensorTimestamp(Kernel::HLERequestContext& ctx) { | ||
| 920 | IPC::RequestParser rp{ctx}; | ||
| 921 | const auto applet_resource_user_id{rp.Pop<u64>()}; | ||
| 922 | |||
| 923 | LOG_WARNING(Service_HID, "(STUBBED) called, applet_resource_user_id={}", | ||
| 924 | applet_resource_user_id); | ||
| 925 | |||
| 926 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 927 | rb.Push(RESULT_SUCCESS); | ||
| 928 | } | ||
| 929 | |||
| 930 | void Hid::SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx) { | ||
| 931 | IPC::RequestParser rp{ctx}; | ||
| 932 | const auto applet_resource_user_id{rp.Pop<u64>()}; | ||
| 933 | const auto is_palma_all_connectable{rp.Pop<bool>()}; | ||
| 934 | |||
| 935 | LOG_WARNING(Service_HID, | ||
| 936 | "(STUBBED) called, applet_resource_user_id={}, is_palma_all_connectable={}", | ||
| 937 | applet_resource_user_id, is_palma_all_connectable); | ||
| 938 | |||
| 939 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 940 | rb.Push(RESULT_SUCCESS); | ||
| 941 | } | ||
| 942 | |||
| 943 | void Hid::SetPalmaBoostMode(Kernel::HLERequestContext& ctx) { | ||
| 944 | IPC::RequestParser rp{ctx}; | ||
| 945 | const auto palma_boost_mode{rp.Pop<bool>()}; | ||
| 946 | |||
| 947 | LOG_WARNING(Service_HID, "(STUBBED) called, palma_boost_mode={}", palma_boost_mode); | ||
| 889 | 948 | ||
| 890 | IPC::ResponseBuilder rb{ctx, 2}; | 949 | IPC::ResponseBuilder rb{ctx, 2}; |
| 891 | rb.Push(RESULT_SUCCESS); | 950 | rb.Push(RESULT_SUCCESS); |
diff --git a/src/core/hle/service/hid/hid.h b/src/core/hle/service/hid/hid.h index d481a75f8..ffce5ba45 100644 --- a/src/core/hle/service/hid/hid.h +++ b/src/core/hle/service/hid/hid.h | |||
| @@ -91,9 +91,11 @@ private: | |||
| 91 | void ActivateTouchScreen(Kernel::HLERequestContext& ctx); | 91 | void ActivateTouchScreen(Kernel::HLERequestContext& ctx); |
| 92 | void ActivateMouse(Kernel::HLERequestContext& ctx); | 92 | void ActivateMouse(Kernel::HLERequestContext& ctx); |
| 93 | void ActivateKeyboard(Kernel::HLERequestContext& ctx); | 93 | void ActivateKeyboard(Kernel::HLERequestContext& ctx); |
| 94 | void SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx); | ||
| 94 | void ActivateGesture(Kernel::HLERequestContext& ctx); | 95 | void ActivateGesture(Kernel::HLERequestContext& ctx); |
| 95 | void ActivateNpadWithRevision(Kernel::HLERequestContext& ctx); | 96 | void ActivateNpadWithRevision(Kernel::HLERequestContext& ctx); |
| 96 | void StartSixAxisSensor(Kernel::HLERequestContext& ctx); | 97 | void StartSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 98 | void StopSixAxisSensor(Kernel::HLERequestContext& ctx); | ||
| 97 | void SetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx); | 99 | void SetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx); |
| 98 | void IsSixAxisSensorAtRest(Kernel::HLERequestContext& ctx); | 100 | void IsSixAxisSensorAtRest(Kernel::HLERequestContext& ctx); |
| 99 | void SetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx); | 101 | void SetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx); |
| @@ -126,12 +128,15 @@ private: | |||
| 126 | void IsVibrationPermitted(Kernel::HLERequestContext& ctx); | 128 | void IsVibrationPermitted(Kernel::HLERequestContext& ctx); |
| 127 | void ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); | 129 | void ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 128 | void StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); | 130 | void StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 129 | void StopSixAxisSensor(Kernel::HLERequestContext& ctx); | 131 | void StopConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 130 | void SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx); | 132 | void ActivateSevenSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 131 | void SetPalmaBoostMode(Kernel::HLERequestContext& ctx); | 133 | void StartSevenSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 132 | void StopSevenSixAxisSensor(Kernel::HLERequestContext& ctx); | 134 | void StopSevenSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 133 | void InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx); | 135 | void InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 134 | void SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx); | 136 | void FinalizeSevenSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 137 | void ResetSevenSixAxisSensorTimestamp(Kernel::HLERequestContext& ctx); | ||
| 138 | void SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx); | ||
| 139 | void SetPalmaBoostMode(Kernel::HLERequestContext& ctx); | ||
| 135 | 140 | ||
| 136 | std::shared_ptr<IAppletResource> applet_resource; | 141 | std::shared_ptr<IAppletResource> applet_resource; |
| 137 | Core::System& system; | 142 | Core::System& system; |