diff options
Diffstat (limited to 'src/input_common/input_poller.cpp')
| -rw-r--r-- | src/input_common/input_poller.cpp | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/src/input_common/input_poller.cpp b/src/input_common/input_poller.cpp index 024bd28ef..6edb8d900 100644 --- a/src/input_common/input_poller.cpp +++ b/src/input_common/input_poller.cpp | |||
| @@ -183,6 +183,17 @@ public: | |||
| 183 | return status; | 183 | return status; |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | void ForceUpdate() { | ||
| 187 | const Input::CallbackStatus status{ | ||
| 188 | .type = Input::InputType::Stick, | ||
| 189 | .stick_status = GetStatus(), | ||
| 190 | }; | ||
| 191 | |||
| 192 | last_axis_x_value = status.stick_status.x.raw_value; | ||
| 193 | last_axis_y_value = status.stick_status.y.raw_value; | ||
| 194 | TriggerOnChange(status); | ||
| 195 | } | ||
| 196 | |||
| 186 | void OnChange() { | 197 | void OnChange() { |
| 187 | const Input::CallbackStatus status{ | 198 | const Input::CallbackStatus status{ |
| 188 | .type = Input::InputType::Stick, | 199 | .type = Input::InputType::Stick, |
| @@ -448,6 +459,16 @@ public: | |||
| 448 | return static_cast<Input::BatteryLevel>(input_engine->GetBattery(identifier)); | 459 | return static_cast<Input::BatteryLevel>(input_engine->GetBattery(identifier)); |
| 449 | } | 460 | } |
| 450 | 461 | ||
| 462 | void ForceUpdate() { | ||
| 463 | const Input::CallbackStatus status{ | ||
| 464 | .type = Input::InputType::Battery, | ||
| 465 | .battery_status = GetStatus(), | ||
| 466 | }; | ||
| 467 | |||
| 468 | last_battery_value = status.battery_status; | ||
| 469 | TriggerOnChange(status); | ||
| 470 | } | ||
| 471 | |||
| 451 | void OnChange() { | 472 | void OnChange() { |
| 452 | const Input::CallbackStatus status{ | 473 | const Input::CallbackStatus status{ |
| 453 | .type = Input::InputType::Battery, | 474 | .type = Input::InputType::Battery, |
| @@ -579,6 +600,18 @@ public: | |||
| 579 | return status; | 600 | return status; |
| 580 | } | 601 | } |
| 581 | 602 | ||
| 603 | void ForceUpdate() { | ||
| 604 | const Input::CallbackStatus status{ | ||
| 605 | .type = Input::InputType::Motion, | ||
| 606 | .motion_status = GetStatus(), | ||
| 607 | }; | ||
| 608 | |||
| 609 | last_axis_x_value = status.motion_status.gyro.x.raw_value; | ||
| 610 | last_axis_y_value = status.motion_status.gyro.y.raw_value; | ||
| 611 | last_axis_z_value = status.motion_status.gyro.z.raw_value; | ||
| 612 | TriggerOnChange(status); | ||
| 613 | } | ||
| 614 | |||
| 582 | void OnChange() { | 615 | void OnChange() { |
| 583 | const Input::CallbackStatus status{ | 616 | const Input::CallbackStatus status{ |
| 584 | .type = Input::InputType::Motion, | 617 | .type = Input::InputType::Motion, |
| @@ -868,6 +901,9 @@ InputFactory::InputFactory(std::shared_ptr<InputEngine> input_engine_) | |||
| 868 | : input_engine(std::move(input_engine_)) {} | 901 | : input_engine(std::move(input_engine_)) {} |
| 869 | 902 | ||
| 870 | std::unique_ptr<Input::InputDevice> InputFactory::Create(const Common::ParamPackage& params) { | 903 | std::unique_ptr<Input::InputDevice> InputFactory::Create(const Common::ParamPackage& params) { |
| 904 | if (params.Has("battery")) { | ||
| 905 | return CreateBatteryDevice(params); | ||
| 906 | } | ||
| 871 | if (params.Has("button") && params.Has("axis")) { | 907 | if (params.Has("button") && params.Has("axis")) { |
| 872 | return CreateTriggerDevice(params); | 908 | return CreateTriggerDevice(params); |
| 873 | } | 909 | } |
| @@ -892,9 +928,6 @@ std::unique_ptr<Input::InputDevice> InputFactory::Create(const Common::ParamPack | |||
| 892 | if (params.Has("axis")) { | 928 | if (params.Has("axis")) { |
| 893 | return CreateAnalogDevice(params); | 929 | return CreateAnalogDevice(params); |
| 894 | } | 930 | } |
| 895 | if (params.Has("battery")) { | ||
| 896 | return CreateBatteryDevice(params); | ||
| 897 | } | ||
| 898 | LOG_ERROR(Input, "Invalid parameters given"); | 931 | LOG_ERROR(Input, "Invalid parameters given"); |
| 899 | return std::make_unique<DummyInput>(); | 932 | return std::make_unique<DummyInput>(); |
| 900 | } | 933 | } |