Browse Source

service: hid: Add multiprocess support to six axis input

nce_cpp
german77 2 years ago
parent
commit
4e0a08ccae
  1. 12
      src/hid_core/resources/six_axis/six_axis.cpp

12
src/hid_core/resources/six_axis/six_axis.cpp

@ -28,11 +28,12 @@ void SixAxis::OnRelease() {}
void SixAxis::OnUpdate(const Core::Timing::CoreTiming& core_timing) { void SixAxis::OnUpdate(const Core::Timing::CoreTiming& core_timing) {
std::scoped_lock shared_lock{*shared_mutex}; std::scoped_lock shared_lock{*shared_mutex};
const u64 aruid = applet_resource->GetActiveAruid();
auto* data = applet_resource->GetAruidData(aruid);
for (std::size_t aruid_index = 0; aruid_index < AruidIndexMax; ++aruid_index) {
const auto* data = applet_resource->GetAruidDataByIndex(aruid_index);
if (data == nullptr || !data->flag.is_assigned) { if (data == nullptr || !data->flag.is_assigned) {
return;
continue;
} }
if (!IsControllerActivated()) { if (!IsControllerActivated()) {
@ -44,6 +45,10 @@ void SixAxis::OnUpdate(const Core::Timing::CoreTiming& core_timing) {
auto& controller = controller_data[i]; auto& controller = controller_data[i];
const auto& controller_type = controller.device->GetNpadStyleIndex(); const auto& controller_type = controller.device->GetNpadStyleIndex();
if (!data->flag.enable_six_axis_sensor) {
continue;
}
if (controller_type == Core::HID::NpadStyleIndex::None || if (controller_type == Core::HID::NpadStyleIndex::None ||
!controller.device->IsConnected()) { !controller.device->IsConnected()) {
continue; continue;
@ -165,6 +170,7 @@ void SixAxis::OnUpdate(const Core::Timing::CoreTiming& core_timing) {
sixaxis_left_lifo.lifo.WriteNextEntry(sixaxis_left_lifo_state); sixaxis_left_lifo.lifo.WriteNextEntry(sixaxis_left_lifo_state);
sixaxis_right_lifo.lifo.WriteNextEntry(sixaxis_right_lifo_state); sixaxis_right_lifo.lifo.WriteNextEntry(sixaxis_right_lifo_state);
} }
}
} }
Result SixAxis::SetGyroscopeZeroDriftMode(const Core::HID::SixAxisSensorHandle& sixaxis_handle, Result SixAxis::SetGyroscopeZeroDriftMode(const Core::HID::SixAxisSensorHandle& sixaxis_handle,

Loading…
Cancel
Save