hid: Stub HomeButtonInputProtection service commands
- Used in 1-2 Switch. Given that we do not emulate the functionality of the home button yet, we can stub this for now.
This commit is contained in:
		
							parent
							
								
									1ba0b077fc
								
							
						
					
					
						commit
						6380731486
					
				| @ -826,6 +826,15 @@ Controller_NPad::LedPattern Controller_NPad::GetLedPattern(u32 npad_id) { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| bool Controller_NPad::IsUnintendedHomeButtonInputProtectionEnabled(u32 npad_id) const { | ||||
|     return unintended_home_button_input_protection[NPadIdToIndex(npad_id)]; | ||||
| } | ||||
| 
 | ||||
| void Controller_NPad::SetUnintendedHomeButtonInputProtectionEnabled(bool is_protection_enabled, | ||||
|                                                                     u32 npad_id) { | ||||
|     unintended_home_button_input_protection[NPadIdToIndex(npad_id)] = is_protection_enabled; | ||||
| } | ||||
| 
 | ||||
| void Controller_NPad::SetVibrationEnabled(bool can_vibrate) { | ||||
|     can_controllers_vibrate = can_vibrate; | ||||
| } | ||||
|  | ||||
| @ -146,6 +146,8 @@ public: | ||||
|     bool IsSixAxisSensorAtRest() const; | ||||
|     void SetSixAxisEnabled(bool six_axis_status); | ||||
|     LedPattern GetLedPattern(u32 npad_id); | ||||
|     bool IsUnintendedHomeButtonInputProtectionEnabled(u32 npad_id) const; | ||||
|     void SetUnintendedHomeButtonInputProtectionEnabled(bool is_protection_enabled, u32 npad_id); | ||||
|     void SetVibrationEnabled(bool can_vibrate); | ||||
|     bool IsVibrationEnabled() const; | ||||
|     void ClearAllConnectedControllers(); | ||||
| @ -387,6 +389,7 @@ private: | ||||
|     std::array<Kernel::EventPair, 10> styleset_changed_events; | ||||
|     Vibration last_processed_vibration{}; | ||||
|     std::array<ControllerHolder, 10> connected_controllers{}; | ||||
|     std::array<bool, 10> unintended_home_button_input_protection{}; | ||||
|     GyroscopeZeroDriftMode gyroscope_zero_drift_mode{GyroscopeZeroDriftMode::Standard}; | ||||
|     bool can_controllers_vibrate{true}; | ||||
|     bool sixaxis_sensors_enabled{true}; | ||||
|  | ||||
| @ -224,8 +224,8 @@ Hid::Hid(Core::System& system) : ServiceFramework("hid"), system(system) { | ||||
|         {128, &Hid::SetNpadHandheldActivationMode, "SetNpadHandheldActivationMode"}, | ||||
|         {129, &Hid::GetNpadHandheldActivationMode, "GetNpadHandheldActivationMode"}, | ||||
|         {130, &Hid::SwapNpadAssignment, "SwapNpadAssignment"}, | ||||
|         {131, nullptr, "IsUnintendedHomeButtonInputProtectionEnabled"}, | ||||
|         {132, nullptr, "EnableUnintendedHomeButtonInputProtection"}, | ||||
|         {131, &Hid::IsUnintendedHomeButtonInputProtectionEnabled, "IsUnintendedHomeButtonInputProtectionEnabled"}, | ||||
|         {132, &Hid::EnableUnintendedHomeButtonInputProtection, "EnableUnintendedHomeButtonInputProtection"}, | ||||
|         {133, nullptr, "SetNpadJoyAssignmentModeSingleWithDestination"}, | ||||
|         {134, nullptr, "SetNpadAnalogStickUseCenterClamp"}, | ||||
|         {135, nullptr, "SetNpadCaptureButtonAssignment"}, | ||||
| @ -796,6 +796,40 @@ void Hid::SwapNpadAssignment(Kernel::HLERequestContext& ctx) { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void Hid::IsUnintendedHomeButtonInputProtectionEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto npad_id{rp.Pop<u32>()}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
| 
 | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called, npad_id={}, applet_resource_user_id={}", npad_id, | ||||
|                 applet_resource_user_id); | ||||
| 
 | ||||
|     auto& controller = applet_resource->GetController<Controller_NPad>(HidController::NPad); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push<bool>(controller.IsUnintendedHomeButtonInputProtectionEnabled(npad_id)); | ||||
| } | ||||
| 
 | ||||
| void Hid::EnableUnintendedHomeButtonInputProtection(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto unintended_home_button_input_protection{rp.Pop<bool>()}; | ||||
|     const auto npad_id{rp.Pop<u32>()}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
| 
 | ||||
|     LOG_WARNING(Service_HID, | ||||
|                 "(STUBBED) called, unintended_home_button_input_protection={}, npad_id={}," | ||||
|                 "applet_resource_user_id={}", | ||||
|                 npad_id, unintended_home_button_input_protection, applet_resource_user_id); | ||||
| 
 | ||||
|     auto& controller = applet_resource->GetController<Controller_NPad>(HidController::NPad); | ||||
|     controller.SetUnintendedHomeButtonInputProtectionEnabled( | ||||
|         unintended_home_button_input_protection, npad_id); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| } | ||||
| 
 | ||||
| void Hid::BeginPermitVibrationSession(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @ -122,6 +122,8 @@ private: | ||||
|     void SetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx); | ||||
|     void GetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx); | ||||
|     void SwapNpadAssignment(Kernel::HLERequestContext& ctx); | ||||
|     void IsUnintendedHomeButtonInputProtectionEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void EnableUnintendedHomeButtonInputProtection(Kernel::HLERequestContext& ctx); | ||||
|     void BeginPermitVibrationSession(Kernel::HLERequestContext& ctx); | ||||
|     void EndPermitVibrationSession(Kernel::HLERequestContext& ctx); | ||||
|     void SendVibrationValue(Kernel::HLERequestContext& ctx); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Morph
						Morph