summaryrefslogtreecommitdiffstats
path: root/src/core/hid/input_converter.cpp
diff options
context:
space:
mode:
authorgerman77 <juangerman-13@hotmail.com>2021-11-14 21:09:29 +0100
committerNarr the Reg <juangerman-13@hotmail.com>2021-11-25 03:30:28 +0100
commit654d76e79e84a3384fa503fac9003a5d0a32f28b (patch)
tree7a0d436a55aa73401d7b77bae4870c10ceca16cd /src/core/hid/input_converter.cpp
parentinput_common: Allow keyboard to be backwards compatible (diff)
downloadyuzu-654d76e79e84a3384fa503fac9003a5d0a32f28b.tar
yuzu-654d76e79e84a3384fa503fac9003a5d0a32f28b.tar.gz
yuzu-654d76e79e84a3384fa503fac9003a5d0a32f28b.tar.bz2
yuzu-654d76e79e84a3384fa503fac9003a5d0a32f28b.tar.lz
yuzu-654d76e79e84a3384fa503fac9003a5d0a32f28b.tar.xz
yuzu-654d76e79e84a3384fa503fac9003a5d0a32f28b.tar.zst
yuzu-654d76e79e84a3384fa503fac9003a5d0a32f28b.zip
Diffstat (limited to '')
-rw-r--r--src/core/hid/input_converter.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/core/hid/input_converter.cpp b/src/core/hid/input_converter.cpp
index 480b862fd..c4e653956 100644
--- a/src/core/hid/input_converter.cpp
+++ b/src/core/hid/input_converter.cpp
@@ -242,6 +242,27 @@ Common::Input::TriggerStatus TransformToTrigger(const Common::Input::CallbackSta
return status;
}
+Common::Input::AnalogStatus TransformToAnalog(const Common::Input::CallbackStatus& callback) {
+ Common::Input::AnalogStatus status{};
+
+ switch (callback.type) {
+ case Common::Input::InputType::Analog:
+ status.properties = callback.analog_status.properties;
+ status.raw_value = callback.analog_status.raw_value;
+ break;
+ default:
+ LOG_ERROR(Input, "Conversion from type {} to analog not implemented", callback.type);
+ break;
+ }
+
+ SanitizeAnalog(status, false);
+
+ // Adjust if value is inverted
+ status.value = status.properties.inverted ? -status.value : status.value;
+
+ return status;
+}
+
void SanitizeAnalog(Common::Input::AnalogStatus& analog, bool clamp_value) {
const auto& properties = analog.properties;
float& raw_value = analog.raw_value;