summaryrefslogtreecommitdiff
path: root/src/input_common/helpers
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/input_common/helpers
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/input_common/helpers')
-rw-r--r--src/input_common/helpers/stick_from_buttons.cpp70
-rw-r--r--src/input_common/helpers/stick_from_buttons.h4
-rw-r--r--src/input_common/helpers/touch_from_buttons.cpp29
-rw-r--r--src/input_common/helpers/touch_from_buttons.h4
4 files changed, 57 insertions, 50 deletions
diff --git a/src/input_common/helpers/stick_from_buttons.cpp b/src/input_common/helpers/stick_from_buttons.cpp
index 806a0e8bb..1d5948f79 100644
--- a/src/input_common/helpers/stick_from_buttons.cpp
+++ b/src/input_common/helpers/stick_from_buttons.cpp
@@ -10,25 +10,27 @@
10 10
11namespace InputCommon { 11namespace InputCommon {
12 12
13class Stick final : public Input::InputDevice { 13class Stick final : public Common::Input::InputDevice {
14public: 14public:
15 using Button = std::unique_ptr<Input::InputDevice>; 15 using Button = std::unique_ptr<Common::Input::InputDevice>;
16 16
17 Stick(Button up_, Button down_, Button left_, Button right_, Button modifier_, 17 Stick(Button up_, Button down_, Button left_, Button right_, Button modifier_,
18 float modifier_scale_, float modifier_angle_) 18 float modifier_scale_, float modifier_angle_)
19 : up(std::move(up_)), down(std::move(down_)), left(std::move(left_)), 19 : up(std::move(up_)), down(std::move(down_)), left(std::move(left_)),
20 right(std::move(right_)), modifier(std::move(modifier_)), modifier_scale(modifier_scale_), 20 right(std::move(right_)), modifier(std::move(modifier_)), modifier_scale(modifier_scale_),
21 modifier_angle(modifier_angle_) { 21 modifier_angle(modifier_angle_) {
22 Input::InputCallback button_up_callback{ 22 Common::Input::InputCallback button_up_callback{
23 [this](Input::CallbackStatus callback_) { UpdateUpButtonStatus(callback_); }}; 23 [this](Common::Input::CallbackStatus callback_) { UpdateUpButtonStatus(callback_); }};
24 Input::InputCallback button_down_callback{ 24 Common::Input::InputCallback button_down_callback{
25 [this](Input::CallbackStatus callback_) { UpdateDownButtonStatus(callback_); }}; 25 [this](Common::Input::CallbackStatus callback_) { UpdateDownButtonStatus(callback_); }};
26 Input::InputCallback button_left_callback{ 26 Common::Input::InputCallback button_left_callback{
27 [this](Input::CallbackStatus callback_) { UpdateLeftButtonStatus(callback_); }}; 27 [this](Common::Input::CallbackStatus callback_) { UpdateLeftButtonStatus(callback_); }};
28 Input::InputCallback button_right_callback{ 28 Common::Input::InputCallback button_right_callback{
29 [this](Input::CallbackStatus callback_) { UpdateRightButtonStatus(callback_); }}; 29 [this](Common::Input::CallbackStatus callback_) {
30 Input::InputCallback button_modifier_callback{ 30 UpdateRightButtonStatus(callback_);
31 [this](Input::CallbackStatus callback_) { UpdateModButtonStatus(callback_); }}; 31 }};
32 Common::Input::InputCallback button_modifier_callback{
33 [this](Common::Input::CallbackStatus callback_) { UpdateModButtonStatus(callback_); }};
32 up->SetCallback(button_up_callback); 34 up->SetCallback(button_up_callback);
33 down->SetCallback(button_down_callback); 35 down->SetCallback(button_down_callback);
34 left->SetCallback(button_left_callback); 36 left->SetCallback(button_left_callback);
@@ -129,27 +131,27 @@ public:
129 } 131 }
130 } 132 }
131 133
132 void UpdateUpButtonStatus(Input::CallbackStatus button_callback) { 134 void UpdateUpButtonStatus(Common::Input::CallbackStatus button_callback) {
133 up_status = button_callback.button_status.value; 135 up_status = button_callback.button_status.value;
134 UpdateStatus(); 136 UpdateStatus();
135 } 137 }
136 138
137 void UpdateDownButtonStatus(Input::CallbackStatus button_callback) { 139 void UpdateDownButtonStatus(Common::Input::CallbackStatus button_callback) {
138 down_status = button_callback.button_status.value; 140 down_status = button_callback.button_status.value;
139 UpdateStatus(); 141 UpdateStatus();
140 } 142 }
141 143
142 void UpdateLeftButtonStatus(Input::CallbackStatus button_callback) { 144 void UpdateLeftButtonStatus(Common::Input::CallbackStatus button_callback) {
143 left_status = button_callback.button_status.value; 145 left_status = button_callback.button_status.value;
144 UpdateStatus(); 146 UpdateStatus();
145 } 147 }
146 148
147 void UpdateRightButtonStatus(Input::CallbackStatus button_callback) { 149 void UpdateRightButtonStatus(Common::Input::CallbackStatus button_callback) {
148 right_status = button_callback.button_status.value; 150 right_status = button_callback.button_status.value;
149 UpdateStatus(); 151 UpdateStatus();
150 } 152 }
151 153
152 void UpdateModButtonStatus(Input::CallbackStatus button_callback) { 154 void UpdateModButtonStatus(Common::Input::CallbackStatus button_callback) {
153 modifier_status = button_callback.button_status.value; 155 modifier_status = button_callback.button_status.value;
154 UpdateStatus(); 156 UpdateStatus();
155 } 157 }
@@ -193,8 +195,8 @@ public:
193 } 195 }
194 196
195 last_update = now; 197 last_update = now;
196 Input::CallbackStatus status{ 198 Common::Input::CallbackStatus status{
197 .type = Input::InputType::Stick, 199 .type = Common::Input::InputType::Stick,
198 .stick_status = GetStatus(), 200 .stick_status = GetStatus(),
199 }; 201 };
200 TriggerOnChange(status); 202 TriggerOnChange(status);
@@ -209,15 +211,15 @@ public:
209 } 211 }
210 212
211 void SoftUpdate() override { 213 void SoftUpdate() override {
212 Input::CallbackStatus status{ 214 Common::Input::CallbackStatus status{
213 .type = Input::InputType::Stick, 215 .type = Common::Input::InputType::Stick,
214 .stick_status = GetStatus(), 216 .stick_status = GetStatus(),
215 }; 217 };
216 TriggerOnChange(status); 218 TriggerOnChange(status);
217 } 219 }
218 220
219 Input::StickStatus GetStatus() const { 221 Common::Input::StickStatus GetStatus() const {
220 Input::StickStatus status{}; 222 Common::Input::StickStatus status{};
221 status.x.properties = properties; 223 status.x.properties = properties;
222 status.y.properties = properties; 224 status.y.properties = properties;
223 if (Settings::values.emulate_analog_keyboard) { 225 if (Settings::values.emulate_analog_keyboard) {
@@ -263,19 +265,23 @@ private:
263 bool left_status; 265 bool left_status;
264 bool right_status; 266 bool right_status;
265 bool modifier_status; 267 bool modifier_status;
266 const Input::AnalogProperties properties{0.0f, 1.0f, 0.5f, 0.0f, false}; 268 const Common::Input::AnalogProperties properties{0.0f, 1.0f, 0.5f, 0.0f, false};
267 std::chrono::time_point<std::chrono::steady_clock> last_update; 269 std::chrono::time_point<std::chrono::steady_clock> last_update;
268}; 270};
269 271
270std::unique_ptr<Input::InputDevice> StickFromButton::Create(const Common::ParamPackage& params) { 272std::unique_ptr<Common::Input::InputDevice> StickFromButton::Create(
273 const Common::ParamPackage& params) {
271 const std::string null_engine = Common::ParamPackage{{"engine", "null"}}.Serialize(); 274 const std::string null_engine = Common::ParamPackage{{"engine", "null"}}.Serialize();
272 auto up = Input::CreateDeviceFromString<Input::InputDevice>(params.Get("up", null_engine)); 275 auto up = Common::Input::CreateDeviceFromString<Common::Input::InputDevice>(
273 auto down = Input::CreateDeviceFromString<Input::InputDevice>(params.Get("down", null_engine)); 276 params.Get("up", null_engine));
274 auto left = Input::CreateDeviceFromString<Input::InputDevice>(params.Get("left", null_engine)); 277 auto down = Common::Input::CreateDeviceFromString<Common::Input::InputDevice>(
275 auto right = 278 params.Get("down", null_engine));
276 Input::CreateDeviceFromString<Input::InputDevice>(params.Get("right", null_engine)); 279 auto left = Common::Input::CreateDeviceFromString<Common::Input::InputDevice>(
277 auto modifier = 280 params.Get("left", null_engine));
278 Input::CreateDeviceFromString<Input::InputDevice>(params.Get("modifier", null_engine)); 281 auto right = Common::Input::CreateDeviceFromString<Common::Input::InputDevice>(
282 params.Get("right", null_engine));
283 auto modifier = Common::Input::CreateDeviceFromString<Common::Input::InputDevice>(
284 params.Get("modifier", null_engine));
279 auto modifier_scale = params.Get("modifier_scale", 0.5f); 285 auto modifier_scale = params.Get("modifier_scale", 0.5f);
280 auto modifier_angle = params.Get("modifier_angle", 5.5f); 286 auto modifier_angle = params.Get("modifier_angle", 5.5f);
281 return std::make_unique<Stick>(std::move(up), std::move(down), std::move(left), 287 return std::make_unique<Stick>(std::move(up), std::move(down), std::move(left),
diff --git a/src/input_common/helpers/stick_from_buttons.h b/src/input_common/helpers/stick_from_buttons.h
index 82dff5ca8..437ace4f7 100644
--- a/src/input_common/helpers/stick_from_buttons.h
+++ b/src/input_common/helpers/stick_from_buttons.h
@@ -12,7 +12,7 @@ namespace InputCommon {
12 * An analog device factory that takes direction button devices and combines them into a analog 12 * An analog device factory that takes direction button devices and combines them into a analog
13 * device. 13 * device.
14 */ 14 */
15class StickFromButton final : public Input::Factory<Input::InputDevice> { 15class StickFromButton final : public Common::Input::Factory<Common::Input::InputDevice> {
16public: 16public:
17 /** 17 /**
18 * Creates an analog device from direction button devices 18 * Creates an analog device from direction button devices
@@ -24,7 +24,7 @@ public:
24 * - "modifier": a serialized ParamPackage for creating a button device as the modifier 24 * - "modifier": a serialized ParamPackage for creating a button device as the modifier
25 * - "modifier_scale": a float for the multiplier the modifier gives to the position 25 * - "modifier_scale": a float for the multiplier the modifier gives to the position
26 */ 26 */
27 std::unique_ptr<Input::InputDevice> Create(const Common::ParamPackage& params) override; 27 std::unique_ptr<Common::Input::InputDevice> Create(const Common::ParamPackage& params) override;
28}; 28};
29 29
30} // namespace InputCommon 30} // namespace InputCommon
diff --git a/src/input_common/helpers/touch_from_buttons.cpp b/src/input_common/helpers/touch_from_buttons.cpp
index bb2bad5b1..fee41cae3 100644
--- a/src/input_common/helpers/touch_from_buttons.cpp
+++ b/src/input_common/helpers/touch_from_buttons.cpp
@@ -9,22 +9,22 @@
9 9
10namespace InputCommon { 10namespace InputCommon {
11 11
12class TouchFromButtonDevice final : public Input::InputDevice { 12class TouchFromButtonDevice final : public Common::Input::InputDevice {
13public: 13public:
14 using Button = std::unique_ptr<Input::InputDevice>; 14 using Button = std::unique_ptr<Common::Input::InputDevice>;
15 TouchFromButtonDevice(Button button_, u32 touch_id_, float x_, float y_) 15 TouchFromButtonDevice(Button button_, u32 touch_id_, float x_, float y_)
16 : button(std::move(button_)), touch_id(touch_id_), x(x_), y(y_) { 16 : button(std::move(button_)), touch_id(touch_id_), x(x_), y(y_) {
17 Input::InputCallback button_up_callback{ 17 Common::Input::InputCallback button_up_callback{
18 [this](Input::CallbackStatus callback_) { UpdateButtonStatus(callback_); }}; 18 [this](Common::Input::CallbackStatus callback_) { UpdateButtonStatus(callback_); }};
19 button->SetCallback(button_up_callback); 19 button->SetCallback(button_up_callback);
20 button->ForceUpdate(); 20 button->ForceUpdate();
21 } 21 }
22 22
23 Input::TouchStatus GetStatus(bool pressed) const { 23 Common::Input::TouchStatus GetStatus(bool pressed) const {
24 const Input::ButtonStatus button_status{ 24 const Common::Input::ButtonStatus button_status{
25 .value = pressed, 25 .value = pressed,
26 }; 26 };
27 Input::TouchStatus status{ 27 Common::Input::TouchStatus status{
28 .pressed = button_status, 28 .pressed = button_status,
29 .x = {}, 29 .x = {},
30 .y = {}, 30 .y = {},
@@ -42,9 +42,9 @@ public:
42 return status; 42 return status;
43 } 43 }
44 44
45 void UpdateButtonStatus(Input::CallbackStatus button_callback) { 45 void UpdateButtonStatus(Common::Input::CallbackStatus button_callback) {
46 const Input::CallbackStatus status{ 46 const Common::Input::CallbackStatus status{
47 .type = Input::InputType::Touch, 47 .type = Common::Input::InputType::Touch,
48 .touch_status = GetStatus(button_callback.button_status.value), 48 .touch_status = GetStatus(button_callback.button_status.value),
49 }; 49 };
50 TriggerOnChange(status); 50 TriggerOnChange(status);
@@ -55,13 +55,14 @@ private:
55 const u32 touch_id; 55 const u32 touch_id;
56 const float x; 56 const float x;
57 const float y; 57 const float y;
58 const Input::AnalogProperties properties{0.0f, 1.0f, 0.5f, 0.0f, false}; 58 const Common::Input::AnalogProperties properties{0.0f, 1.0f, 0.5f, 0.0f, false};
59}; 59};
60 60
61std::unique_ptr<Input::InputDevice> TouchFromButton::Create(const Common::ParamPackage& params) { 61std::unique_ptr<Common::Input::InputDevice> TouchFromButton::Create(
62 const Common::ParamPackage& params) {
62 const std::string null_engine = Common::ParamPackage{{"engine", "null"}}.Serialize(); 63 const std::string null_engine = Common::ParamPackage{{"engine", "null"}}.Serialize();
63 auto button = 64 auto button = Common::Input::CreateDeviceFromString<Common::Input::InputDevice>(
64 Input::CreateDeviceFromString<Input::InputDevice>(params.Get("button", null_engine)); 65 params.Get("button", null_engine));
65 const auto touch_id = params.Get("touch_id", 0); 66 const auto touch_id = params.Get("touch_id", 0);
66 const float x = params.Get("x", 0.0f) / 1280.0f; 67 const float x = params.Get("x", 0.0f) / 1280.0f;
67 const float y = params.Get("y", 0.0f) / 720.0f; 68 const float y = params.Get("y", 0.0f) / 720.0f;
diff --git a/src/input_common/helpers/touch_from_buttons.h b/src/input_common/helpers/touch_from_buttons.h
index 21b353728..628f18215 100644
--- a/src/input_common/helpers/touch_from_buttons.h
+++ b/src/input_common/helpers/touch_from_buttons.h
@@ -11,12 +11,12 @@ namespace InputCommon {
11/** 11/**
12 * A touch device factory that takes a list of button devices and combines them into a touch device. 12 * A touch device factory that takes a list of button devices and combines them into a touch device.
13 */ 13 */
14class TouchFromButton final : public Input::Factory<Input::InputDevice> { 14class TouchFromButton final : public Common::Input::Factory<Common::Input::InputDevice> {
15public: 15public:
16 /** 16 /**
17 * Creates a touch device from a list of button devices 17 * Creates a touch device from a list of button devices
18 */ 18 */
19 std::unique_ptr<Input::InputDevice> Create(const Common::ParamPackage& params) override; 19 std::unique_ptr<Common::Input::InputDevice> Create(const Common::ParamPackage& params) override;
20}; 20};
21 21
22} // namespace InputCommon 22} // namespace InputCommon