summaryrefslogtreecommitdiff
path: root/src/input_common/input_poller.cpp
diff options
context:
space:
mode:
authorGravatar german772021-10-24 23:23:54 -0500
committerGravatar Narr the Reg2021-11-24 20:30:26 -0600
commit064ddacf49aa7155e26add55983b81fdda997077 (patch)
tree17f6d767233c10578d84d2029014a3dfa4b55396 /src/input_common/input_poller.cpp
parentinput_common: Add manual update options to input devices (diff)
downloadyuzu-064ddacf49aa7155e26add55983b81fdda997077.tar.gz
yuzu-064ddacf49aa7155e26add55983b81fdda997077.tar.xz
yuzu-064ddacf49aa7155e26add55983b81fdda997077.zip
core/hid: Rework battery mappings
Diffstat (limited to '')
-rw-r--r--src/input_common/input_poller.cpp39
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
870std::unique_ptr<Input::InputDevice> InputFactory::Create(const Common::ParamPackage& params) { 903std::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}