diff options
author | bunnei <bunneidev@gmail.com> | 2022-09-05 23:50:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-05 23:50:38 +0200 |
commit | dd2faab372c3ca1b6b5c8fddd808bfab495a2f27 (patch) | |
tree | 8407b84b8cefc617f6701e23386c40dc06977f78 /src/input_common/drivers | |
parent | Merge pull request #8855 from german77/pls (diff) | |
parent | input_common: sdl: Always check for motion on reconnect (diff) | |
download | yuzu-dd2faab372c3ca1b6b5c8fddd808bfab495a2f27.tar yuzu-dd2faab372c3ca1b6b5c8fddd808bfab495a2f27.tar.gz yuzu-dd2faab372c3ca1b6b5c8fddd808bfab495a2f27.tar.bz2 yuzu-dd2faab372c3ca1b6b5c8fddd808bfab495a2f27.tar.lz yuzu-dd2faab372c3ca1b6b5c8fddd808bfab495a2f27.tar.xz yuzu-dd2faab372c3ca1b6b5c8fddd808bfab495a2f27.tar.zst yuzu-dd2faab372c3ca1b6b5c8fddd808bfab495a2f27.zip |
Diffstat (limited to 'src/input_common/drivers')
-rw-r--r-- | src/input_common/drivers/sdl_driver.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/input_common/drivers/sdl_driver.cpp b/src/input_common/drivers/sdl_driver.cpp index de388ec4c..5cc1ccbd9 100644 --- a/src/input_common/drivers/sdl_driver.cpp +++ b/src/input_common/drivers/sdl_driver.cpp @@ -40,13 +40,13 @@ public: void EnableMotion() { if (sdl_controller) { SDL_GameController* controller = sdl_controller.get(); - if (SDL_GameControllerHasSensor(controller, SDL_SENSOR_ACCEL) && !has_accel) { + has_accel = SDL_GameControllerHasSensor(controller, SDL_SENSOR_ACCEL); + has_gyro = SDL_GameControllerHasSensor(controller, SDL_SENSOR_GYRO); + if (has_accel) { SDL_GameControllerSetSensorEnabled(controller, SDL_SENSOR_ACCEL, SDL_TRUE); - has_accel = true; } - if (SDL_GameControllerHasSensor(controller, SDL_SENSOR_GYRO) && !has_gyro) { + if (has_gyro) { SDL_GameControllerSetSensorEnabled(controller, SDL_SENSOR_GYRO, SDL_TRUE); - has_gyro = true; } } } @@ -305,6 +305,7 @@ void SDLDriver::InitJoystick(int joystick_index) { auto joystick = std::make_shared<SDLJoystick>(guid, 0, sdl_joystick, sdl_gamecontroller); PreSetController(joystick->GetPadIdentifier()); SetBattery(joystick->GetPadIdentifier(), joystick->GetBatteryLevel()); + joystick->EnableMotion(); joystick_map[guid].emplace_back(std::move(joystick)); return; } @@ -316,6 +317,7 @@ void SDLDriver::InitJoystick(int joystick_index) { if (joystick_it != joystick_guid_list.end()) { (*joystick_it)->SetSDLJoystick(sdl_joystick, sdl_gamecontroller); + (*joystick_it)->EnableMotion(); return; } @@ -323,6 +325,7 @@ void SDLDriver::InitJoystick(int joystick_index) { auto joystick = std::make_shared<SDLJoystick>(guid, port, sdl_joystick, sdl_gamecontroller); PreSetController(joystick->GetPadIdentifier()); SetBattery(joystick->GetPadIdentifier(), joystick->GetBatteryLevel()); + joystick->EnableMotion(); joystick_guid_list.emplace_back(std::move(joystick)); } |