summaryrefslogtreecommitdiff
path: root/src/core/hid/input_converter.cpp
diff options
context:
space:
mode:
authorGravatar german772021-10-30 22:23:10 -0500
committerGravatar Narr the Reg2021-11-24 20:30:26 -0600
commit2b1b0c2a30e242b08ec120e09803ec54d5445703 (patch)
tree9a10400a7e4403b288eee3aae8a52f1d5be912de /src/core/hid/input_converter.cpp
parentinput_common: Revert deleted TAS functions (diff)
downloadyuzu-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.cpp75
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
10namespace Core::HID { 10namespace Core::HID {
11 11
12Input::BatteryStatus TransformToBattery(const Input::CallbackStatus& callback) { 12Common::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
51Input::ButtonStatus TransformToButton(const Input::CallbackStatus& callback) { 51Common::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
73Input::MotionStatus TransformToMotion(const Input::CallbackStatus& callback) { 73Common::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
136Input::StickStatus TransformToStick(const Input::CallbackStatus& callback) { 136Common::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
163Input::TouchStatus TransformToTouch(const Input::CallbackStatus& callback) { 163Common::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
195Input::TriggerStatus TransformToTrigger(const Input::CallbackStatus& callback) { 195Common::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
237void SanitizeAnalog(Input::AnalogStatus& analog, bool clamp_value) { 237void 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
277void SanitizeStick(Input::AnalogStatus& analog_x, Input::AnalogStatus& analog_y, bool clamp_value) { 277void 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;