diff options
author | bunnei <bunneidev@gmail.com> | 2023-05-06 21:40:20 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-06 21:40:20 -0700 |
commit | 82188b2f7943e5304ae3ae058bdd34c60d8be3a6 (patch) | |
tree | 9d885f3d15f2c9a4e0fa60e816349d61f094a32e | |
parent | 5467d39bc35d866177b64b792f841f3f02158c70 (diff) | |
parent | 9b771bcb8f2da7af507aa7be1b44599901028284 (diff) |
Merge pull request #10174 from german77/motriod
input_common: Add experimental motion to button
-rw-r--r-- | src/core/hid/input_converter.cpp | 7 | ||||
-rw-r--r-- | src/input_common/input_mapping.cpp | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/core/hid/input_converter.cpp b/src/core/hid/input_converter.cpp index a38e3bb3f..53b00b1f9 100644 --- a/src/core/hid/input_converter.cpp +++ b/src/core/hid/input_converter.cpp @@ -62,6 +62,9 @@ Common::Input::ButtonStatus TransformToButton(const Common::Input::CallbackStatu case Common::Input::InputType::Button: status = callback.button_status; break; + case Common::Input::InputType::Motion: + status.value = std::abs(callback.motion_status.gyro.x.raw_value) > 1.0f; + break; default: LOG_ERROR(Input, "Conversion from type {} to button not implemented", callback.type); break; @@ -227,6 +230,10 @@ Common::Input::TriggerStatus TransformToTrigger(const Common::Input::CallbackSta status = callback.trigger_status; calculate_button_value = false; break; + case Common::Input::InputType::Motion: + status.analog.properties.range = 1.0f; + raw_value = callback.motion_status.accel.x.raw_value; + break; default: LOG_ERROR(Input, "Conversion from type {} to trigger not implemented", callback.type); break; diff --git a/src/input_common/input_mapping.cpp b/src/input_common/input_mapping.cpp index 9361b00c5..8c2ee4eb3 100644 --- a/src/input_common/input_mapping.cpp +++ b/src/input_common/input_mapping.cpp @@ -82,6 +82,9 @@ void MappingFactory::RegisterButton(const MappingData& data) { new_input.Set("axis", data.index); new_input.Set("threshold", 0.5f); break; + case EngineInputType::Motion: + new_input.Set("motion", data.index); + break; default: return; } |