diff options
Diffstat (limited to 'src')
| -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 415c2829e..57d5edea7 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>()}; |
| @@ -864,33 +885,35 @@ void Hid::StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { | |||
| 864 | rb.Push(RESULT_SUCCESS); | 885 | rb.Push(RESULT_SUCCESS); |
| 865 | } | 886 | } |
| 866 | 887 | ||
| 867 | void Hid::StopSixAxisSensor(Kernel::HLERequestContext& ctx) { | 888 | void Hid::StopConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { |
| 868 | IPC::RequestParser rp{ctx}; | 889 | IPC::RequestParser rp{ctx}; |
| 869 | const auto handle{rp.Pop<u32>()}; | 890 | const auto handle{rp.Pop<u32>()}; |
| 891 | const auto applet_resource_user_id{rp.Pop<u64>()}; | ||
| 870 | 892 | ||
| 871 | LOG_WARNING(Service_HID, "(STUBBED) called, handle={}", handle); | 893 | LOG_WARNING(Service_HID, "(STUBBED) called, handle={}, applet_resource_user_id={}", handle, |
| 894 | applet_resource_user_id); | ||
| 872 | 895 | ||
| 873 | IPC::ResponseBuilder rb{ctx, 2}; | 896 | IPC::ResponseBuilder rb{ctx, 2}; |
| 874 | rb.Push(RESULT_SUCCESS); | 897 | rb.Push(RESULT_SUCCESS); |
| 875 | } | 898 | } |
| 876 | 899 | ||
| 877 | void Hid::SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx) { | 900 | void Hid::ActivateSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { |
| 878 | IPC::RequestParser rp{ctx}; | 901 | IPC::RequestParser rp{ctx}; |
| 879 | const auto applet_resource_user_id{rp.Pop<u64>()}; | 902 | const auto applet_resource_user_id{rp.Pop<u64>()}; |
| 880 | const auto unknown{rp.Pop<u32>()}; | ||
| 881 | 903 | ||
| 882 | LOG_WARNING(Service_HID, "(STUBBED) called, applet_resource_user_id={}, unknown={}", | 904 | LOG_WARNING(Service_HID, "(STUBBED) called, applet_resource_user_id={}", |
| 883 | applet_resource_user_id, unknown); | 905 | applet_resource_user_id); |
| 884 | 906 | ||
| 885 | IPC::ResponseBuilder rb{ctx, 2}; | 907 | IPC::ResponseBuilder rb{ctx, 2}; |
| 886 | rb.Push(RESULT_SUCCESS); | 908 | rb.Push(RESULT_SUCCESS); |
| 887 | } | 909 | } |
| 888 | 910 | ||
| 889 | void Hid::SetPalmaBoostMode(Kernel::HLERequestContext& ctx) { | 911 | void Hid::StartSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { |
| 890 | IPC::RequestParser rp{ctx}; | 912 | IPC::RequestParser rp{ctx}; |
| 891 | const auto unknown{rp.Pop<u32>()}; | 913 | const auto applet_resource_user_id{rp.Pop<u64>()}; |
| 892 | 914 | ||
| 893 | LOG_WARNING(Service_HID, "(STUBBED) called, unknown={}", unknown); | 915 | LOG_WARNING(Service_HID, "(STUBBED) called, applet_resource_user_id={}", |
| 916 | applet_resource_user_id); | ||
| 894 | 917 | ||
| 895 | IPC::ResponseBuilder rb{ctx, 2}; | 918 | IPC::ResponseBuilder rb{ctx, 2}; |
| 896 | rb.Push(RESULT_SUCCESS); | 919 | rb.Push(RESULT_SUCCESS); |
| @@ -914,10 +937,46 @@ void Hid::InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | |||
| 914 | rb.Push(RESULT_SUCCESS); | 937 | rb.Push(RESULT_SUCCESS); |
| 915 | } | 938 | } |
| 916 | 939 | ||
| 917 | void Hid::SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx) { | 940 | void Hid::FinalizeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { |
| 918 | IPC::RequestParser rp{ctx}; | 941 | IPC::RequestParser rp{ctx}; |
| 919 | const auto flags{rp.Pop<u32>()}; | 942 | const auto applet_resource_user_id{rp.Pop<u64>()}; |
| 920 | LOG_WARNING(Service_HID, "(STUBBED) called. flags={}", flags); | 943 | |
| 944 | LOG_WARNING(Service_HID, "(STUBBED) called, applet_resource_user_id={}", | ||
| 945 | applet_resource_user_id); | ||
| 946 | |||
| 947 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 948 | rb.Push(RESULT_SUCCESS); | ||
| 949 | } | ||
| 950 | |||
| 951 | void Hid::ResetSevenSixAxisSensorTimestamp(Kernel::HLERequestContext& ctx) { | ||
| 952 | IPC::RequestParser rp{ctx}; | ||
| 953 | const auto applet_resource_user_id{rp.Pop<u64>()}; | ||
| 954 | |||
| 955 | LOG_WARNING(Service_HID, "(STUBBED) called, applet_resource_user_id={}", | ||
| 956 | applet_resource_user_id); | ||
| 957 | |||
| 958 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 959 | rb.Push(RESULT_SUCCESS); | ||
| 960 | } | ||
| 961 | |||
| 962 | void Hid::SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx) { | ||
| 963 | IPC::RequestParser rp{ctx}; | ||
| 964 | const auto applet_resource_user_id{rp.Pop<u64>()}; | ||
| 965 | const auto is_palma_all_connectable{rp.Pop<bool>()}; | ||
| 966 | |||
| 967 | LOG_WARNING(Service_HID, | ||
| 968 | "(STUBBED) called, applet_resource_user_id={}, is_palma_all_connectable={}", | ||
| 969 | applet_resource_user_id, is_palma_all_connectable); | ||
| 970 | |||
| 971 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 972 | rb.Push(RESULT_SUCCESS); | ||
| 973 | } | ||
| 974 | |||
| 975 | void Hid::SetPalmaBoostMode(Kernel::HLERequestContext& ctx) { | ||
| 976 | IPC::RequestParser rp{ctx}; | ||
| 977 | const auto palma_boost_mode{rp.Pop<bool>()}; | ||
| 978 | |||
| 979 | LOG_WARNING(Service_HID, "(STUBBED) called, palma_boost_mode={}", palma_boost_mode); | ||
| 921 | 980 | ||
| 922 | IPC::ResponseBuilder rb{ctx, 2}; | 981 | IPC::ResponseBuilder rb{ctx, 2}; |
| 923 | rb.Push(RESULT_SUCCESS); | 982 | rb.Push(RESULT_SUCCESS); |
diff --git a/src/core/hle/service/hid/hid.h b/src/core/hle/service/hid/hid.h index 41b330fa9..6fb048360 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 GetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx); | 100 | void GetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx); |
| 99 | void ResetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx); | 101 | void ResetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx); |
| @@ -128,12 +130,15 @@ private: | |||
| 128 | void IsVibrationPermitted(Kernel::HLERequestContext& ctx); | 130 | void IsVibrationPermitted(Kernel::HLERequestContext& ctx); |
| 129 | void ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); | 131 | void ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 130 | void StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); | 132 | void StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 131 | void StopSixAxisSensor(Kernel::HLERequestContext& ctx); | 133 | void StopConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 132 | void SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx); | 134 | void ActivateSevenSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 133 | void SetPalmaBoostMode(Kernel::HLERequestContext& ctx); | 135 | void StartSevenSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 134 | void StopSevenSixAxisSensor(Kernel::HLERequestContext& ctx); | 136 | void StopSevenSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 135 | void InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx); | 137 | void InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 136 | void SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx); | 138 | void FinalizeSevenSixAxisSensor(Kernel::HLERequestContext& ctx); |
| 139 | void ResetSevenSixAxisSensorTimestamp(Kernel::HLERequestContext& ctx); | ||
| 140 | void SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx); | ||
| 141 | void SetPalmaBoostMode(Kernel::HLERequestContext& ctx); | ||
| 137 | 142 | ||
| 138 | std::shared_ptr<IAppletResource> applet_resource; | 143 | std::shared_ptr<IAppletResource> applet_resource; |
| 139 | Core::System& system; | 144 | Core::System& system; |