3
0
Fork 0
forked from suyu/suyu

Merge pull request #5835 from Morph1984/cleanup-sixaxis-fusion

hid: Cleanup SixAxisFusionParameters
This commit is contained in:
LC 2021-01-28 10:51:04 -05:00 committed by GitHub
commit 0e125dfd43
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 26 deletions

View file

@ -946,20 +946,19 @@ void Controller_NPad::SetSixAxisEnabled(bool six_axis_status) {
sixaxis_sensors_enabled = six_axis_status; sixaxis_sensors_enabled = six_axis_status;
} }
void Controller_NPad::SetSixAxisFusionParameters(const DeviceHandle& handle, f32 parameter1, void Controller_NPad::SetSixAxisFusionParameters(f32 parameter1, f32 parameter2) {
f32 parameter2) {
sixaxis_fusion_parameter1 = parameter1; sixaxis_fusion_parameter1 = parameter1;
sixaxis_fusion_parameter2 = parameter2; sixaxis_fusion_parameter2 = parameter2;
} }
std::pair<f32, f32> Controller_NPad::GetSixAxisFusionParameters(const DeviceHandle& handle) { std::pair<f32, f32> Controller_NPad::GetSixAxisFusionParameters() {
return { return {
sixaxis_fusion_parameter1, sixaxis_fusion_parameter1,
sixaxis_fusion_parameter2, sixaxis_fusion_parameter2,
}; };
} }
void Controller_NPad::ResetSixAxisFusionParameters(const DeviceHandle& handle) { void Controller_NPad::ResetSixAxisFusionParameters() {
sixaxis_fusion_parameter1 = 0.0f; sixaxis_fusion_parameter1 = 0.0f;
sixaxis_fusion_parameter2 = 0.0f; sixaxis_fusion_parameter2 = 0.0f;
} }

View file

@ -202,9 +202,9 @@ public:
GyroscopeZeroDriftMode GetGyroscopeZeroDriftMode() const; GyroscopeZeroDriftMode GetGyroscopeZeroDriftMode() const;
bool IsSixAxisSensorAtRest() const; bool IsSixAxisSensorAtRest() const;
void SetSixAxisEnabled(bool six_axis_status); void SetSixAxisEnabled(bool six_axis_status);
void SetSixAxisFusionParameters(const DeviceHandle& handle, f32 parameter1, f32 parameter2); void SetSixAxisFusionParameters(f32 parameter1, f32 parameter2);
std::pair<f32, f32> GetSixAxisFusionParameters(const DeviceHandle& handle); std::pair<f32, f32> GetSixAxisFusionParameters();
void ResetSixAxisFusionParameters(const DeviceHandle& handle); void ResetSixAxisFusionParameters();
LedPattern GetLedPattern(u32 npad_id); LedPattern GetLedPattern(u32 npad_id);
bool IsUnintendedHomeButtonInputProtectionEnabled(u32 npad_id) const; bool IsUnintendedHomeButtonInputProtectionEnabled(u32 npad_id) const;
void SetUnintendedHomeButtonInputProtectionEnabled(bool is_protection_enabled, u32 npad_id); void SetUnintendedHomeButtonInputProtectionEnabled(bool is_protection_enabled, u32 npad_id);

View file

@ -520,6 +520,7 @@ void Hid::EnableSixAxisSensorFusion(Kernel::HLERequestContext& ctx) {
Controller_NPad::DeviceHandle sixaxis_handle; Controller_NPad::DeviceHandle sixaxis_handle;
u64 applet_resource_user_id; u64 applet_resource_user_id;
}; };
static_assert(sizeof(Parameters) == 0x10, "Parameters has incorrect size.");
const auto parameters{rp.PopRaw<Parameters>()}; const auto parameters{rp.PopRaw<Parameters>()};
@ -542,19 +543,19 @@ void Hid::SetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) {
f32 parameter2; f32 parameter2;
u64 applet_resource_user_id; u64 applet_resource_user_id;
}; };
static_assert(sizeof(Parameters) == 0x18, "Parameters has incorrect size.");
const auto parameters{rp.PopRaw<Parameters>()}; const auto parameters{rp.PopRaw<Parameters>()};
applet_resource->GetController<Controller_NPad>(HidController::NPad) applet_resource->GetController<Controller_NPad>(HidController::NPad)
.SetSixAxisFusionParameters(parameters.sixaxis_handle, parameters.parameter1, .SetSixAxisFusionParameters(parameters.parameter1, parameters.parameter2);
parameters.parameter2);
LOG_WARNING(Service_HID, LOG_WARNING(Service_HID,
"(STUBBED) called, float1={}, float2={}, npad_type={}, npad_id={}, " "(STUBBED) called, npad_type={}, npad_id={}, device_index={}, parameter1={}, "
"device_index={}, applet_resource_user_id={}", "parameter2={}, applet_resource_user_id={}",
parameters.parameter1, parameters.parameter2, parameters.sixaxis_handle.npad_type, parameters.sixaxis_handle.npad_type, parameters.sixaxis_handle.npad_id,
parameters.sixaxis_handle.npad_id, parameters.sixaxis_handle.device_index, parameters.sixaxis_handle.device_index, parameters.parameter1,
parameters.applet_resource_user_id); parameters.parameter2, parameters.applet_resource_user_id);
IPC::ResponseBuilder rb{ctx, 2}; IPC::ResponseBuilder rb{ctx, 2};
rb.Push(RESULT_SUCCESS); rb.Push(RESULT_SUCCESS);
@ -566,6 +567,7 @@ void Hid::GetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) {
Controller_NPad::DeviceHandle sixaxis_handle; Controller_NPad::DeviceHandle sixaxis_handle;
u64 applet_resource_user_id; u64 applet_resource_user_id;
}; };
static_assert(sizeof(Parameters) == 0x10, "Parameters has incorrect size.");
f32 parameter1 = 0; f32 parameter1 = 0;
f32 parameter2 = 0; f32 parameter2 = 0;
@ -573,13 +575,13 @@ void Hid::GetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) {
std::tie(parameter1, parameter2) = std::tie(parameter1, parameter2) =
applet_resource->GetController<Controller_NPad>(HidController::NPad) applet_resource->GetController<Controller_NPad>(HidController::NPad)
.GetSixAxisFusionParameters(parameters.sixaxis_handle); .GetSixAxisFusionParameters();
LOG_WARNING(Service_HID, LOG_WARNING(
"(STUBBED) called, npad_type={}, npad_id={}, " Service_HID,
"device_index={}, applet_resource_user_id={}", "(STUBBED) called, npad_type={}, npad_id={}, device_index={}, applet_resource_user_id={}",
parameters.sixaxis_handle.npad_type, parameters.sixaxis_handle.npad_id, parameters.sixaxis_handle.npad_type, parameters.sixaxis_handle.npad_id,
parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id); parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);
IPC::ResponseBuilder rb{ctx, 4}; IPC::ResponseBuilder rb{ctx, 4};
rb.Push(RESULT_SUCCESS); rb.Push(RESULT_SUCCESS);
@ -593,17 +595,18 @@ void Hid::ResetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) {
Controller_NPad::DeviceHandle sixaxis_handle; Controller_NPad::DeviceHandle sixaxis_handle;
u64 applet_resource_user_id; u64 applet_resource_user_id;
}; };
static_assert(sizeof(Parameters) == 0x10, "Parameters has incorrect size.");
const auto parameters{rp.PopRaw<Parameters>()}; const auto parameters{rp.PopRaw<Parameters>()};
applet_resource->GetController<Controller_NPad>(HidController::NPad) applet_resource->GetController<Controller_NPad>(HidController::NPad)
.ResetSixAxisFusionParameters(parameters.sixaxis_handle); .ResetSixAxisFusionParameters();
LOG_WARNING(Service_HID, LOG_WARNING(
"(STUBBED) called, npad_type={}, npad_id={}, " Service_HID,
"device_index={}, applet_resource_user_id={}", "(STUBBED) called, npad_type={}, npad_id={}, device_index={}, applet_resource_user_id={}",
parameters.sixaxis_handle.npad_type, parameters.sixaxis_handle.npad_id, parameters.sixaxis_handle.npad_type, parameters.sixaxis_handle.npad_id,
parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id); parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);
IPC::ResponseBuilder rb{ctx, 2}; IPC::ResponseBuilder rb{ctx, 2};
rb.Push(RESULT_SUCCESS); rb.Push(RESULT_SUCCESS);