summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/hid/hid.cpp93
-rw-r--r--src/core/hle/service/hid/hid.h13
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
377void 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
377void Hid::ActivateGesture(Kernel::HLERequestContext& ctx) { 386void 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
425void 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
416void Hid::SetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { 437void 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
835void Hid::StopSixAxisSensor(Kernel::HLERequestContext& ctx) { 856void 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
845void Hid::SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx) { 868void 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
857void Hid::SetPalmaBoostMode(Kernel::HLERequestContext& ctx) { 879void 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
885void Hid::SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx) { 908void 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
919void 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
930void 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
943void 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;