diff options
author | bunnei <bunneidev@gmail.com> | 2022-02-24 11:42:51 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-24 11:42:51 -0800 |
commit | 1079215871cc15452e58aea59630871ea183feeb (patch) | |
tree | ac74f8005fc0f98ebdc3206037a83dc55db5ce1b /src/input_common/drivers/sdl_driver.cpp | |
parent | 2f45e999d8b4a7df2edc40bee28c7b4907c9f92a (diff) | |
parent | 21742f00961308fedb35cf38261afba3c1682853 (diff) |
Merge pull request #7859 from german77/battery_again
input_common: Remove battery duplicated struct and update every button press
Diffstat (limited to 'src/input_common/drivers/sdl_driver.cpp')
-rw-r--r-- | src/input_common/drivers/sdl_driver.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/input_common/drivers/sdl_driver.cpp b/src/input_common/drivers/sdl_driver.cpp index 5cf1987ad4..c17ea305ef 100644 --- a/src/input_common/drivers/sdl_driver.cpp +++ b/src/input_common/drivers/sdl_driver.cpp @@ -175,22 +175,23 @@ public: return false; } - BatteryLevel GetBatteryLevel() { + Common::Input::BatteryLevel GetBatteryLevel() { const auto level = SDL_JoystickCurrentPowerLevel(sdl_joystick.get()); switch (level) { case SDL_JOYSTICK_POWER_EMPTY: - return BatteryLevel::Empty; + return Common::Input::BatteryLevel::Empty; case SDL_JOYSTICK_POWER_LOW: - return BatteryLevel::Low; + return Common::Input::BatteryLevel::Low; case SDL_JOYSTICK_POWER_MEDIUM: - return BatteryLevel::Medium; + return Common::Input::BatteryLevel::Medium; case SDL_JOYSTICK_POWER_FULL: case SDL_JOYSTICK_POWER_MAX: - return BatteryLevel::Full; - case SDL_JOYSTICK_POWER_UNKNOWN: + return Common::Input::BatteryLevel::Full; case SDL_JOYSTICK_POWER_WIRED: + return Common::Input::BatteryLevel::Charging; + case SDL_JOYSTICK_POWER_UNKNOWN: default: - return BatteryLevel::Charging; + return Common::Input::BatteryLevel::None; } } @@ -351,6 +352,8 @@ void SDLDriver::HandleGameControllerEvent(const SDL_Event& event) { if (const auto joystick = GetSDLJoystickBySDLID(event.jbutton.which)) { const PadIdentifier identifier = joystick->GetPadIdentifier(); SetButton(identifier, event.jbutton.button, true); + // Battery doesn't trigger an event so just update every button press + SetBattery(identifier, joystick->GetBatteryLevel()); } break; } |