summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2020-10-07 14:54:05 -0700
committerGravatar GitHub2020-10-07 14:54:05 -0700
commit92adb69fa7fa21d2f5e078e9473c0ea08e009a71 (patch)
treef4093ecf2ed67a34a1863a7ce383cb6b577ceda0
parentMerge pull request #4710 from Morph1984/fix-integrated-updates (diff)
parenthid: Stub HomeButtonInputProtection service commands (diff)
downloadyuzu-92adb69fa7fa21d2f5e078e9473c0ea08e009a71.tar.gz
yuzu-92adb69fa7fa21d2f5e078e9473c0ea08e009a71.tar.xz
yuzu-92adb69fa7fa21d2f5e078e9473c0ea08e009a71.zip
Merge pull request #4736 from Morph1984/home-button-input-protection-stub
hid: Stub HomeButtonInputProtection service commands
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp9
-rw-r--r--src/core/hle/service/hid/controllers/npad.h3
-rw-r--r--src/core/hle/service/hid/hid.cpp38
-rw-r--r--src/core/hle/service/hid/hid.h2
4 files changed, 50 insertions, 2 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index a03af8df4..2de4ed348 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -846,6 +846,15 @@ Controller_NPad::LedPattern Controller_NPad::GetLedPattern(u32 npad_id) {
846 } 846 }
847} 847}
848 848
849bool Controller_NPad::IsUnintendedHomeButtonInputProtectionEnabled(u32 npad_id) const {
850 return unintended_home_button_input_protection[NPadIdToIndex(npad_id)];
851}
852
853void Controller_NPad::SetUnintendedHomeButtonInputProtectionEnabled(bool is_protection_enabled,
854 u32 npad_id) {
855 unintended_home_button_input_protection[NPadIdToIndex(npad_id)] = is_protection_enabled;
856}
857
849void Controller_NPad::SetVibrationEnabled(bool can_vibrate) { 858void Controller_NPad::SetVibrationEnabled(bool can_vibrate) {
850 can_controllers_vibrate = can_vibrate; 859 can_controllers_vibrate = can_vibrate;
851} 860}
diff --git a/src/core/hle/service/hid/controllers/npad.h b/src/core/hle/service/hid/controllers/npad.h
index e65277c7b..fd5c5a6eb 100644
--- a/src/core/hle/service/hid/controllers/npad.h
+++ b/src/core/hle/service/hid/controllers/npad.h
@@ -146,6 +146,8 @@ public:
146 bool IsSixAxisSensorAtRest() const; 146 bool IsSixAxisSensorAtRest() const;
147 void SetSixAxisEnabled(bool six_axis_status); 147 void SetSixAxisEnabled(bool six_axis_status);
148 LedPattern GetLedPattern(u32 npad_id); 148 LedPattern GetLedPattern(u32 npad_id);
149 bool IsUnintendedHomeButtonInputProtectionEnabled(u32 npad_id) const;
150 void SetUnintendedHomeButtonInputProtectionEnabled(bool is_protection_enabled, u32 npad_id);
149 void SetVibrationEnabled(bool can_vibrate); 151 void SetVibrationEnabled(bool can_vibrate);
150 bool IsVibrationEnabled() const; 152 bool IsVibrationEnabled() const;
151 void ClearAllConnectedControllers(); 153 void ClearAllConnectedControllers();
@@ -387,6 +389,7 @@ private:
387 std::array<Kernel::EventPair, 10> styleset_changed_events; 389 std::array<Kernel::EventPair, 10> styleset_changed_events;
388 Vibration last_processed_vibration{}; 390 Vibration last_processed_vibration{};
389 std::array<ControllerHolder, 10> connected_controllers{}; 391 std::array<ControllerHolder, 10> connected_controllers{};
392 std::array<bool, 10> unintended_home_button_input_protection{};
390 GyroscopeZeroDriftMode gyroscope_zero_drift_mode{GyroscopeZeroDriftMode::Standard}; 393 GyroscopeZeroDriftMode gyroscope_zero_drift_mode{GyroscopeZeroDriftMode::Standard};
391 bool can_controllers_vibrate{true}; 394 bool can_controllers_vibrate{true};
392 bool sixaxis_sensors_enabled{true}; 395 bool sixaxis_sensors_enabled{true};
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index 001427fd8..71dbaba7f 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/src/core/hle/service/hid/hid.cpp
@@ -224,8 +224,8 @@ Hid::Hid(Core::System& system) : ServiceFramework("hid"), system(system) {
224 {128, &Hid::SetNpadHandheldActivationMode, "SetNpadHandheldActivationMode"}, 224 {128, &Hid::SetNpadHandheldActivationMode, "SetNpadHandheldActivationMode"},
225 {129, &Hid::GetNpadHandheldActivationMode, "GetNpadHandheldActivationMode"}, 225 {129, &Hid::GetNpadHandheldActivationMode, "GetNpadHandheldActivationMode"},
226 {130, &Hid::SwapNpadAssignment, "SwapNpadAssignment"}, 226 {130, &Hid::SwapNpadAssignment, "SwapNpadAssignment"},
227 {131, nullptr, "IsUnintendedHomeButtonInputProtectionEnabled"}, 227 {131, &Hid::IsUnintendedHomeButtonInputProtectionEnabled, "IsUnintendedHomeButtonInputProtectionEnabled"},
228 {132, nullptr, "EnableUnintendedHomeButtonInputProtection"}, 228 {132, &Hid::EnableUnintendedHomeButtonInputProtection, "EnableUnintendedHomeButtonInputProtection"},
229 {133, nullptr, "SetNpadJoyAssignmentModeSingleWithDestination"}, 229 {133, nullptr, "SetNpadJoyAssignmentModeSingleWithDestination"},
230 {134, nullptr, "SetNpadAnalogStickUseCenterClamp"}, 230 {134, nullptr, "SetNpadAnalogStickUseCenterClamp"},
231 {135, nullptr, "SetNpadCaptureButtonAssignment"}, 231 {135, nullptr, "SetNpadCaptureButtonAssignment"},
@@ -809,6 +809,40 @@ void Hid::SwapNpadAssignment(Kernel::HLERequestContext& ctx) {
809 } 809 }
810} 810}
811 811
812void Hid::IsUnintendedHomeButtonInputProtectionEnabled(Kernel::HLERequestContext& ctx) {
813 IPC::RequestParser rp{ctx};
814 const auto npad_id{rp.Pop<u32>()};
815 const auto applet_resource_user_id{rp.Pop<u64>()};
816
817 LOG_WARNING(Service_HID, "(STUBBED) called, npad_id={}, applet_resource_user_id={}", npad_id,
818 applet_resource_user_id);
819
820 auto& controller = applet_resource->GetController<Controller_NPad>(HidController::NPad);
821
822 IPC::ResponseBuilder rb{ctx, 3};
823 rb.Push(RESULT_SUCCESS);
824 rb.Push<bool>(controller.IsUnintendedHomeButtonInputProtectionEnabled(npad_id));
825}
826
827void Hid::EnableUnintendedHomeButtonInputProtection(Kernel::HLERequestContext& ctx) {
828 IPC::RequestParser rp{ctx};
829 const auto unintended_home_button_input_protection{rp.Pop<bool>()};
830 const auto npad_id{rp.Pop<u32>()};
831 const auto applet_resource_user_id{rp.Pop<u64>()};
832
833 LOG_WARNING(Service_HID,
834 "(STUBBED) called, unintended_home_button_input_protection={}, npad_id={},"
835 "applet_resource_user_id={}",
836 npad_id, unintended_home_button_input_protection, applet_resource_user_id);
837
838 auto& controller = applet_resource->GetController<Controller_NPad>(HidController::NPad);
839 controller.SetUnintendedHomeButtonInputProtectionEnabled(
840 unintended_home_button_input_protection, npad_id);
841
842 IPC::ResponseBuilder rb{ctx, 2};
843 rb.Push(RESULT_SUCCESS);
844}
845
812void Hid::BeginPermitVibrationSession(Kernel::HLERequestContext& ctx) { 846void Hid::BeginPermitVibrationSession(Kernel::HLERequestContext& ctx) {
813 IPC::RequestParser rp{ctx}; 847 IPC::RequestParser rp{ctx};
814 const auto applet_resource_user_id{rp.Pop<u64>()}; 848 const auto applet_resource_user_id{rp.Pop<u64>()};
diff --git a/src/core/hle/service/hid/hid.h b/src/core/hle/service/hid/hid.h
index 1c7d39b67..fd0372b18 100644
--- a/src/core/hle/service/hid/hid.h
+++ b/src/core/hle/service/hid/hid.h
@@ -123,6 +123,8 @@ private:
123 void SetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx); 123 void SetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx);
124 void GetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx); 124 void GetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx);
125 void SwapNpadAssignment(Kernel::HLERequestContext& ctx); 125 void SwapNpadAssignment(Kernel::HLERequestContext& ctx);
126 void IsUnintendedHomeButtonInputProtectionEnabled(Kernel::HLERequestContext& ctx);
127 void EnableUnintendedHomeButtonInputProtection(Kernel::HLERequestContext& ctx);
126 void BeginPermitVibrationSession(Kernel::HLERequestContext& ctx); 128 void BeginPermitVibrationSession(Kernel::HLERequestContext& ctx);
127 void EndPermitVibrationSession(Kernel::HLERequestContext& ctx); 129 void EndPermitVibrationSession(Kernel::HLERequestContext& ctx);
128 void SendVibrationValue(Kernel::HLERequestContext& ctx); 130 void SendVibrationValue(Kernel::HLERequestContext& ctx);