فهرست منبع

Merge pull request #7680 from german77/accel_mapping

input_common: Allow to only have acceleration motion data
bunnei 4 سال پیش
والد
کامیت
26f4e92c1f
2فایلهای تغییر یافته به همراه11 افزوده شده و 2 حذف شده
  1. 1 0
      src/core/hid/motion_input.cpp
  2. 10 2
      src/input_common/input_engine.cpp

+ 1 - 0
src/core/hid/motion_input.cpp

@@ -10,6 +10,7 @@ namespace Core::HID {
 MotionInput::MotionInput() {
     // Initialize PID constants with default values
     SetPID(0.3f, 0.005f, 0.0f);
+    SetGyroThreshold(0.001f);
 }
 
 void MotionInput::SetPID(f32 new_kp, f32 new_ki, f32 new_kd) {

+ 10 - 2
src/input_common/input_engine.cpp

@@ -298,8 +298,16 @@ void InputEngine::TriggerOnMotionChange(const PadIdentifier& identifier, int mot
     if (!configuring || !mapping_callback.on_data) {
         return;
     }
-    if (std::abs(value.gyro_x) < 0.6f && std::abs(value.gyro_y) < 0.6f &&
-        std::abs(value.gyro_z) < 0.6f) {
+    bool is_active = false;
+    if (std::abs(value.accel_x) > 1.5f || std::abs(value.accel_y) > 1.5f ||
+        std::abs(value.accel_z) > 1.5f) {
+        is_active = true;
+    }
+    if (std::abs(value.gyro_x) > 0.6f || std::abs(value.gyro_y) > 0.6f ||
+        std::abs(value.gyro_z) > 0.6f) {
+        is_active = true;
+    }
+    if (!is_active) {
         return;
     }
     mapping_callback.on_data(MappingData{