mirror of
https://git.h3cjp.net/H3cJP/citra.git
synced 2024-11-24 11:22:46 +00:00
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) {
|
void Controller_NPad::SetVibrationEnabled(bool can_vibrate) {
|
||||||
can_controllers_vibrate = can_vibrate;
|
can_controllers_vibrate = can_vibrate;
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,6 +146,8 @@ public:
|
||||||
bool IsSixAxisSensorAtRest() const;
|
bool IsSixAxisSensorAtRest() const;
|
||||||
void SetSixAxisEnabled(bool six_axis_status);
|
void SetSixAxisEnabled(bool six_axis_status);
|
||||||
LedPattern GetLedPattern(u32 npad_id);
|
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);
|
void SetVibrationEnabled(bool can_vibrate);
|
||||||
bool IsVibrationEnabled() const;
|
bool IsVibrationEnabled() const;
|
||||||
void ClearAllConnectedControllers();
|
void ClearAllConnectedControllers();
|
||||||
|
@ -387,6 +389,7 @@ private:
|
||||||
std::array<Kernel::EventPair, 10> styleset_changed_events;
|
std::array<Kernel::EventPair, 10> styleset_changed_events;
|
||||||
Vibration last_processed_vibration{};
|
Vibration last_processed_vibration{};
|
||||||
std::array<ControllerHolder, 10> connected_controllers{};
|
std::array<ControllerHolder, 10> connected_controllers{};
|
||||||
|
std::array<bool, 10> unintended_home_button_input_protection{};
|
||||||
GyroscopeZeroDriftMode gyroscope_zero_drift_mode{GyroscopeZeroDriftMode::Standard};
|
GyroscopeZeroDriftMode gyroscope_zero_drift_mode{GyroscopeZeroDriftMode::Standard};
|
||||||
bool can_controllers_vibrate{true};
|
bool can_controllers_vibrate{true};
|
||||||
bool sixaxis_sensors_enabled{true};
|
bool sixaxis_sensors_enabled{true};
|
||||||
|
|
|
@ -224,8 +224,8 @@ Hid::Hid(Core::System& system) : ServiceFramework("hid"), system(system) {
|
||||||
{128, &Hid::SetNpadHandheldActivationMode, "SetNpadHandheldActivationMode"},
|
{128, &Hid::SetNpadHandheldActivationMode, "SetNpadHandheldActivationMode"},
|
||||||
{129, &Hid::GetNpadHandheldActivationMode, "GetNpadHandheldActivationMode"},
|
{129, &Hid::GetNpadHandheldActivationMode, "GetNpadHandheldActivationMode"},
|
||||||
{130, &Hid::SwapNpadAssignment, "SwapNpadAssignment"},
|
{130, &Hid::SwapNpadAssignment, "SwapNpadAssignment"},
|
||||||
{131, nullptr, "IsUnintendedHomeButtonInputProtectionEnabled"},
|
{131, &Hid::IsUnintendedHomeButtonInputProtectionEnabled, "IsUnintendedHomeButtonInputProtectionEnabled"},
|
||||||
{132, nullptr, "EnableUnintendedHomeButtonInputProtection"},
|
{132, &Hid::EnableUnintendedHomeButtonInputProtection, "EnableUnintendedHomeButtonInputProtection"},
|
||||||
{133, nullptr, "SetNpadJoyAssignmentModeSingleWithDestination"},
|
{133, nullptr, "SetNpadJoyAssignmentModeSingleWithDestination"},
|
||||||
{134, nullptr, "SetNpadAnalogStickUseCenterClamp"},
|
{134, nullptr, "SetNpadAnalogStickUseCenterClamp"},
|
||||||
{135, nullptr, "SetNpadCaptureButtonAssignment"},
|
{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) {
|
void Hid::BeginPermitVibrationSession(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto applet_resource_user_id{rp.Pop<u64>()};
|
const auto applet_resource_user_id{rp.Pop<u64>()};
|
||||||
|
|
|
@ -122,6 +122,8 @@ private:
|
||||||
void SetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx);
|
void SetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx);
|
||||||
void GetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx);
|
void GetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx);
|
||||||
void SwapNpadAssignment(Kernel::HLERequestContext& ctx);
|
void SwapNpadAssignment(Kernel::HLERequestContext& ctx);
|
||||||
|
void IsUnintendedHomeButtonInputProtectionEnabled(Kernel::HLERequestContext& ctx);
|
||||||
|
void EnableUnintendedHomeButtonInputProtection(Kernel::HLERequestContext& ctx);
|
||||||
void BeginPermitVibrationSession(Kernel::HLERequestContext& ctx);
|
void BeginPermitVibrationSession(Kernel::HLERequestContext& ctx);
|
||||||
void EndPermitVibrationSession(Kernel::HLERequestContext& ctx);
|
void EndPermitVibrationSession(Kernel::HLERequestContext& ctx);
|
||||||
void SendVibrationValue(Kernel::HLERequestContext& ctx);
|
void SendVibrationValue(Kernel::HLERequestContext& ctx);
|
||||||
|
|
Loading…
Reference in a new issue