diff options
| author | 2021-10-30 22:23:10 -0500 | |
|---|---|---|
| committer | 2021-11-24 20:30:26 -0600 | |
| commit | 2b1b0c2a30e242b08ec120e09803ec54d5445703 (patch) | |
| tree | 9a10400a7e4403b288eee3aae8a52f1d5be912de /src/core/hid/input_converter.cpp | |
| parent | input_common: Revert deleted TAS functions (diff) | |
| download | yuzu-2b1b0c2a30e242b08ec120e09803ec54d5445703.tar.gz yuzu-2b1b0c2a30e242b08ec120e09803ec54d5445703.tar.xz yuzu-2b1b0c2a30e242b08ec120e09803ec54d5445703.zip | |
kraken: Address comments from review
start lion review
Diffstat (limited to 'src/core/hid/input_converter.cpp')
| -rw-r--r-- | src/core/hid/input_converter.cpp | 75 |
1 files changed, 38 insertions, 37 deletions
diff --git a/src/core/hid/input_converter.cpp b/src/core/hid/input_converter.cpp index e2598f367..14204917e 100644 --- a/src/core/hid/input_converter.cpp +++ b/src/core/hid/input_converter.cpp | |||
| @@ -9,35 +9,35 @@ | |||
| 9 | 9 | ||
| 10 | namespace Core::HID { | 10 | namespace Core::HID { |
| 11 | 11 | ||
| 12 | Input::BatteryStatus TransformToBattery(const Input::CallbackStatus& callback) { | 12 | Common::Input::BatteryStatus TransformToBattery(const Common::Input::CallbackStatus& callback) { |
| 13 | Input::BatteryStatus battery{Input::BatteryStatus::None}; | 13 | Common::Input::BatteryStatus battery{Common::Input::BatteryStatus::None}; |
| 14 | switch (callback.type) { | 14 | switch (callback.type) { |
| 15 | case Input::InputType::Analog: | 15 | case Common::Input::InputType::Analog: |
| 16 | case Input::InputType::Trigger: { | 16 | case Common::Input::InputType::Trigger: { |
| 17 | const auto value = TransformToTrigger(callback).analog.value; | 17 | const auto value = TransformToTrigger(callback).analog.value; |
| 18 | battery = Input::BatteryLevel::Empty; | 18 | battery = Common::Input::BatteryLevel::Empty; |
| 19 | if (value > 0.2f) { | 19 | if (value > 0.2f) { |
| 20 | battery = Input::BatteryLevel::Critical; | 20 | battery = Common::Input::BatteryLevel::Critical; |
| 21 | } | 21 | } |
| 22 | if (value > 0.4f) { | 22 | if (value > 0.4f) { |
| 23 | battery = Input::BatteryLevel::Low; | 23 | battery = Common::Input::BatteryLevel::Low; |
| 24 | } | 24 | } |
| 25 | if (value > 0.6f) { | 25 | if (value > 0.6f) { |
| 26 | battery = Input::BatteryLevel::Medium; | 26 | battery = Common::Input::BatteryLevel::Medium; |
| 27 | } | 27 | } |
| 28 | if (value > 0.8f) { | 28 | if (value > 0.8f) { |
| 29 | battery = Input::BatteryLevel::Full; | 29 | battery = Common::Input::BatteryLevel::Full; |
| 30 | } | 30 | } |
| 31 | if (value >= 1.0f) { | 31 | if (value >= 1.0f) { |
| 32 | battery = Input::BatteryLevel::Charging; | 32 | battery = Common::Input::BatteryLevel::Charging; |
| 33 | } | 33 | } |
| 34 | break; | 34 | break; |
| 35 | } | 35 | } |
| 36 | case Input::InputType::Button: | 36 | case Common::Input::InputType::Button: |
| 37 | battery = callback.button_status.value ? Input::BatteryLevel::Charging | 37 | battery = callback.button_status.value ? Common::Input::BatteryLevel::Charging |
| 38 | : Input::BatteryLevel::Critical; | 38 | : Common::Input::BatteryLevel::Critical; |
| 39 | break; | 39 | break; |
| 40 | case Input::InputType::Battery: | 40 | case Common::Input::InputType::Battery: |
| 41 | battery = callback.battery_status; | 41 | battery = callback.battery_status; |
| 42 | break; | 42 | break; |
| 43 | default: | 43 | default: |
| @@ -48,14 +48,14 @@ Input::BatteryStatus TransformToBattery(const Input::CallbackStatus& callback) { | |||
| 48 | return battery; | 48 | return battery; |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | Input::ButtonStatus TransformToButton(const Input::CallbackStatus& callback) { | 51 | Common::Input::ButtonStatus TransformToButton(const Common::Input::CallbackStatus& callback) { |
| 52 | Input::ButtonStatus status{}; | 52 | Common::Input::ButtonStatus status{}; |
| 53 | switch (callback.type) { | 53 | switch (callback.type) { |
| 54 | case Input::InputType::Analog: | 54 | case Common::Input::InputType::Analog: |
| 55 | case Input::InputType::Trigger: | 55 | case Common::Input::InputType::Trigger: |
| 56 | status.value = TransformToTrigger(callback).pressed; | 56 | status.value = TransformToTrigger(callback).pressed; |
| 57 | break; | 57 | break; |
| 58 | case Input::InputType::Button: | 58 | case Common::Input::InputType::Button: |
| 59 | status = callback.button_status; | 59 | status = callback.button_status; |
| 60 | break; | 60 | break; |
| 61 | default: | 61 | default: |
| @@ -70,15 +70,15 @@ Input::ButtonStatus TransformToButton(const Input::CallbackStatus& callback) { | |||
| 70 | return status; | 70 | return status; |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | Input::MotionStatus TransformToMotion(const Input::CallbackStatus& callback) { | 73 | Common::Input::MotionStatus TransformToMotion(const Common::Input::CallbackStatus& callback) { |
| 74 | Input::MotionStatus status{}; | 74 | Common::Input::MotionStatus status{}; |
| 75 | switch (callback.type) { | 75 | switch (callback.type) { |
| 76 | case Input::InputType::Button: { | 76 | case Common::Input::InputType::Button: { |
| 77 | if (TransformToButton(callback).value) { | 77 | if (TransformToButton(callback).value) { |
| 78 | std::random_device device; | 78 | std::random_device device; |
| 79 | std::mt19937 gen(device()); | 79 | std::mt19937 gen(device()); |
| 80 | std::uniform_int_distribution<s16> distribution(-1000, 1000); | 80 | std::uniform_int_distribution<s16> distribution(-1000, 1000); |
| 81 | Input::AnalogProperties properties{ | 81 | Common::Input::AnalogProperties properties{ |
| 82 | .deadzone = 0.0, | 82 | .deadzone = 0.0, |
| 83 | .range = 1.0f, | 83 | .range = 1.0f, |
| 84 | .offset = 0.0, | 84 | .offset = 0.0, |
| @@ -116,7 +116,7 @@ Input::MotionStatus TransformToMotion(const Input::CallbackStatus& callback) { | |||
| 116 | } | 116 | } |
| 117 | break; | 117 | break; |
| 118 | } | 118 | } |
| 119 | case Input::InputType::Motion: | 119 | case Common::Input::InputType::Motion: |
| 120 | status = callback.motion_status; | 120 | status = callback.motion_status; |
| 121 | break; | 121 | break; |
| 122 | default: | 122 | default: |
| @@ -133,11 +133,11 @@ Input::MotionStatus TransformToMotion(const Input::CallbackStatus& callback) { | |||
| 133 | return status; | 133 | return status; |
| 134 | } | 134 | } |
| 135 | 135 | ||
| 136 | Input::StickStatus TransformToStick(const Input::CallbackStatus& callback) { | 136 | Common::Input::StickStatus TransformToStick(const Common::Input::CallbackStatus& callback) { |
| 137 | Input::StickStatus status{}; | 137 | Common::Input::StickStatus status{}; |
| 138 | 138 | ||
| 139 | switch (callback.type) { | 139 | switch (callback.type) { |
| 140 | case Input::InputType::Stick: | 140 | case Common::Input::InputType::Stick: |
| 141 | status = callback.stick_status; | 141 | status = callback.stick_status; |
| 142 | break; | 142 | break; |
| 143 | default: | 143 | default: |
| @@ -160,11 +160,11 @@ Input::StickStatus TransformToStick(const Input::CallbackStatus& callback) { | |||
| 160 | return status; | 160 | return status; |
| 161 | } | 161 | } |
| 162 | 162 | ||
| 163 | Input::TouchStatus TransformToTouch(const Input::CallbackStatus& callback) { | 163 | Common::Input::TouchStatus TransformToTouch(const Common::Input::CallbackStatus& callback) { |
| 164 | Input::TouchStatus status{}; | 164 | Common::Input::TouchStatus status{}; |
| 165 | 165 | ||
| 166 | switch (callback.type) { | 166 | switch (callback.type) { |
| 167 | case Input::InputType::Touch: | 167 | case Common::Input::InputType::Touch: |
| 168 | status = callback.touch_status; | 168 | status = callback.touch_status; |
| 169 | break; | 169 | break; |
| 170 | default: | 170 | default: |
| @@ -192,22 +192,22 @@ Input::TouchStatus TransformToTouch(const Input::CallbackStatus& callback) { | |||
| 192 | return status; | 192 | return status; |
| 193 | } | 193 | } |
| 194 | 194 | ||
| 195 | Input::TriggerStatus TransformToTrigger(const Input::CallbackStatus& callback) { | 195 | Common::Input::TriggerStatus TransformToTrigger(const Common::Input::CallbackStatus& callback) { |
| 196 | Input::TriggerStatus status{}; | 196 | Common::Input::TriggerStatus status{}; |
| 197 | float& raw_value = status.analog.raw_value; | 197 | float& raw_value = status.analog.raw_value; |
| 198 | bool calculate_button_value = true; | 198 | bool calculate_button_value = true; |
| 199 | 199 | ||
| 200 | switch (callback.type) { | 200 | switch (callback.type) { |
| 201 | case Input::InputType::Analog: | 201 | case Common::Input::InputType::Analog: |
| 202 | status.analog.properties = callback.analog_status.properties; | 202 | status.analog.properties = callback.analog_status.properties; |
| 203 | raw_value = callback.analog_status.raw_value; | 203 | raw_value = callback.analog_status.raw_value; |
| 204 | break; | 204 | break; |
| 205 | case Input::InputType::Button: | 205 | case Common::Input::InputType::Button: |
| 206 | status.analog.properties.range = 1.0f; | 206 | status.analog.properties.range = 1.0f; |
| 207 | status.analog.properties.inverted = callback.button_status.inverted; | 207 | status.analog.properties.inverted = callback.button_status.inverted; |
| 208 | raw_value = callback.button_status.value ? 1.0f : 0.0f; | 208 | raw_value = callback.button_status.value ? 1.0f : 0.0f; |
| 209 | break; | 209 | break; |
| 210 | case Input::InputType::Trigger: | 210 | case Common::Input::InputType::Trigger: |
| 211 | status = callback.trigger_status; | 211 | status = callback.trigger_status; |
| 212 | calculate_button_value = false; | 212 | calculate_button_value = false; |
| 213 | break; | 213 | break; |
| @@ -234,7 +234,7 @@ Input::TriggerStatus TransformToTrigger(const Input::CallbackStatus& callback) { | |||
| 234 | return status; | 234 | return status; |
| 235 | } | 235 | } |
| 236 | 236 | ||
| 237 | void SanitizeAnalog(Input::AnalogStatus& analog, bool clamp_value) { | 237 | void SanitizeAnalog(Common::Input::AnalogStatus& analog, bool clamp_value) { |
| 238 | const auto& properties = analog.properties; | 238 | const auto& properties = analog.properties; |
| 239 | float& raw_value = analog.raw_value; | 239 | float& raw_value = analog.raw_value; |
| 240 | float& value = analog.value; | 240 | float& value = analog.value; |
| @@ -274,7 +274,8 @@ void SanitizeAnalog(Input::AnalogStatus& analog, bool clamp_value) { | |||
| 274 | } | 274 | } |
| 275 | } | 275 | } |
| 276 | 276 | ||
| 277 | void SanitizeStick(Input::AnalogStatus& analog_x, Input::AnalogStatus& analog_y, bool clamp_value) { | 277 | void SanitizeStick(Common::Input::AnalogStatus& analog_x, Common::Input::AnalogStatus& analog_y, |
| 278 | bool clamp_value) { | ||
| 278 | const auto& properties_x = analog_x.properties; | 279 | const auto& properties_x = analog_x.properties; |
| 279 | const auto& properties_y = analog_y.properties; | 280 | const auto& properties_y = analog_y.properties; |
| 280 | float& raw_x = analog_x.raw_value; | 281 | float& raw_x = analog_x.raw_value; |