diff options
Diffstat (limited to 'src/input_common')
| -rw-r--r-- | src/input_common/helpers/stick_from_buttons.cpp | 16 | ||||
| -rw-r--r-- | src/input_common/helpers/touch_from_buttons.cpp | 1 | ||||
| -rw-r--r-- | src/input_common/input_poller.cpp | 20 |
3 files changed, 37 insertions, 0 deletions
diff --git a/src/input_common/helpers/stick_from_buttons.cpp b/src/input_common/helpers/stick_from_buttons.cpp index 38f150746..9101f11ce 100644 --- a/src/input_common/helpers/stick_from_buttons.cpp +++ b/src/input_common/helpers/stick_from_buttons.cpp | |||
| @@ -200,6 +200,22 @@ public: | |||
| 200 | TriggerOnChange(status); | 200 | TriggerOnChange(status); |
| 201 | } | 201 | } |
| 202 | 202 | ||
| 203 | void ForceUpdate() override{ | ||
| 204 | up->ForceUpdate(); | ||
| 205 | down->ForceUpdate(); | ||
| 206 | left->ForceUpdate(); | ||
| 207 | right->ForceUpdate(); | ||
| 208 | modifier->ForceUpdate(); | ||
| 209 | } | ||
| 210 | |||
| 211 | void SoftUpdate() override { | ||
| 212 | Input::CallbackStatus status{ | ||
| 213 | .type = Input::InputType::Stick, | ||
| 214 | .stick_status = GetStatus(), | ||
| 215 | }; | ||
| 216 | TriggerOnChange(status); | ||
| 217 | } | ||
| 218 | |||
| 203 | Input::StickStatus GetStatus() const { | 219 | Input::StickStatus GetStatus() const { |
| 204 | Input::StickStatus status{}; | 220 | Input::StickStatus status{}; |
| 205 | status.x.properties = properties; | 221 | status.x.properties = properties; |
diff --git a/src/input_common/helpers/touch_from_buttons.cpp b/src/input_common/helpers/touch_from_buttons.cpp index 2abfaf841..bb2bad5b1 100644 --- a/src/input_common/helpers/touch_from_buttons.cpp +++ b/src/input_common/helpers/touch_from_buttons.cpp | |||
| @@ -17,6 +17,7 @@ public: | |||
| 17 | Input::InputCallback button_up_callback{ | 17 | Input::InputCallback button_up_callback{ |
| 18 | [this](Input::CallbackStatus callback_) { UpdateButtonStatus(callback_); }}; | 18 | [this](Input::CallbackStatus callback_) { UpdateButtonStatus(callback_); }}; |
| 19 | button->SetCallback(button_up_callback); | 19 | button->SetCallback(button_up_callback); |
| 20 | button->ForceUpdate(); | ||
| 20 | } | 21 | } |
| 21 | 22 | ||
| 22 | Input::TouchStatus GetStatus(bool pressed) const { | 23 | Input::TouchStatus GetStatus(bool pressed) const { |
diff --git a/src/input_common/input_poller.cpp b/src/input_common/input_poller.cpp index 62ade951c..024bd28ef 100644 --- a/src/input_common/input_poller.cpp +++ b/src/input_common/input_poller.cpp | |||
| @@ -45,6 +45,16 @@ public: | |||
| 45 | }; | 45 | }; |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | void ForceUpdate() { | ||
| 49 | const Input::CallbackStatus status{ | ||
| 50 | .type = Input::InputType::Button, | ||
| 51 | .button_status = GetStatus(), | ||
| 52 | }; | ||
| 53 | |||
| 54 | last_button_value = status.button_status.value; | ||
| 55 | TriggerOnChange(status); | ||
| 56 | } | ||
| 57 | |||
| 48 | void OnChange() { | 58 | void OnChange() { |
| 49 | const Input::CallbackStatus status{ | 59 | const Input::CallbackStatus status{ |
| 50 | .type = Input::InputType::Button, | 60 | .type = Input::InputType::Button, |
| @@ -96,6 +106,16 @@ public: | |||
| 96 | }; | 106 | }; |
| 97 | } | 107 | } |
| 98 | 108 | ||
| 109 | void ForceUpdate() { | ||
| 110 | const Input::CallbackStatus status{ | ||
| 111 | .type = Input::InputType::Button, | ||
| 112 | .button_status = GetStatus(), | ||
| 113 | }; | ||
| 114 | |||
| 115 | last_button_value = status.button_status.value; | ||
| 116 | TriggerOnChange(status); | ||
| 117 | } | ||
| 118 | |||
| 99 | void OnChange() { | 119 | void OnChange() { |
| 100 | const Input::CallbackStatus status{ | 120 | const Input::CallbackStatus status{ |
| 101 | .type = Input::InputType::Button, | 121 | .type = Input::InputType::Button, |