summaryrefslogtreecommitdiff
path: root/src/input_common
diff options
context:
space:
mode:
Diffstat (limited to 'src/input_common')
-rw-r--r--src/input_common/helpers/stick_from_buttons.cpp16
-rw-r--r--src/input_common/helpers/touch_from_buttons.cpp1
-rw-r--r--src/input_common/input_poller.cpp20
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,