diff options
| author | 2021-11-01 19:49:14 -0600 | |
|---|---|---|
| committer | 2021-11-24 20:30:27 -0600 | |
| commit | 136eb9c4c2b2425c2dd45a79cf444dee7170714d (patch) | |
| tree | 74a055a08126fdd33b2071baa08125177847db6e /src/core/hid/motion_input.h | |
| parent | second commit lion review (diff) | |
| download | yuzu-136eb9c4c2b2425c2dd45a79cf444dee7170714d.tar.gz yuzu-136eb9c4c2b2425c2dd45a79cf444dee7170714d.tar.xz yuzu-136eb9c4c2b2425c2dd45a79cf444dee7170714d.zip | |
core/hid: Fully emulate motion from button
Diffstat (limited to 'src/core/hid/motion_input.h')
| -rw-r--r-- | src/core/hid/motion_input.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/core/hid/motion_input.h b/src/core/hid/motion_input.h index 3deef5ac3..5b5b420bb 100644 --- a/src/core/hid/motion_input.h +++ b/src/core/hid/motion_input.h | |||
| @@ -56,15 +56,31 @@ private: | |||
| 56 | Common::Vec3f integral_error; | 56 | Common::Vec3f integral_error; |
| 57 | Common::Vec3f derivative_error; | 57 | Common::Vec3f derivative_error; |
| 58 | 58 | ||
| 59 | // Quaternion containing the device orientation | ||
| 59 | Common::Quaternion<f32> quat{{0.0f, 0.0f, -1.0f}, 0.0f}; | 60 | Common::Quaternion<f32> quat{{0.0f, 0.0f, -1.0f}, 0.0f}; |
| 61 | |||
| 62 | // Number of full rotations in each axis | ||
| 60 | Common::Vec3f rotations; | 63 | Common::Vec3f rotations; |
| 64 | |||
| 65 | // Acceleration vector measurement in G force | ||
| 61 | Common::Vec3f accel; | 66 | Common::Vec3f accel; |
| 67 | |||
| 68 | // Gyroscope vector measurement in radians/s. | ||
| 62 | Common::Vec3f gyro; | 69 | Common::Vec3f gyro; |
| 70 | |||
| 71 | // Vector to be substracted from gyro measurements | ||
| 63 | Common::Vec3f gyro_drift; | 72 | Common::Vec3f gyro_drift; |
| 64 | 73 | ||
| 74 | // Minimum gyro amplitude to detect if the device is moving | ||
| 65 | f32 gyro_threshold = 0.0f; | 75 | f32 gyro_threshold = 0.0f; |
| 76 | |||
| 77 | // Number of invalid sequential data | ||
| 66 | u32 reset_counter = 0; | 78 | u32 reset_counter = 0; |
| 79 | |||
| 80 | // If the provided data is invalid the device will be autocalibrated | ||
| 67 | bool reset_enabled = true; | 81 | bool reset_enabled = true; |
| 82 | |||
| 83 | // Use accelerometer values to calculate position | ||
| 68 | bool only_accelerometer = true; | 84 | bool only_accelerometer = true; |
| 69 | }; | 85 | }; |
| 70 | 86 | ||