From 8e3960b40984ae6b0d51cb6172f0907225b7d4c5 Mon Sep 17 00:00:00 2001 From: Vitor Kiguchi Date: Wed, 4 Mar 2020 21:08:26 -0300 Subject: [PATCH] sdl_joystick: disable the use of the hidapi drivers due to many problems caused by them. The main problem is the loss of compatibility with some controllers, but there are also unwanted changes to the behaviour of PS4 controllers (hardcoded lightbar color). --- src/input_common/sdl/sdl_impl.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/input_common/sdl/sdl_impl.cpp b/src/input_common/sdl/sdl_impl.cpp index 0b69bfede..f186787b8 100644 --- a/src/input_common/sdl/sdl_impl.cpp +++ b/src/input_common/sdl/sdl_impl.cpp @@ -472,6 +472,14 @@ SDLState::SDLState() { if (SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1") == SDL_FALSE) { LOG_ERROR(Input, "Failed to set Hint for background events", SDL_GetError()); } +// these hints are only defined on sdl2.0.9 or higher +#if SDL_VERSION_ATLEAST(2, 0, 9) + // This can be set back to 1 when the compatibility problems with the controllers are + // solved. There are also hints to toggle the individual drivers. + SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI, "0"); + // This hint should probably stay as "0" as long as the hidapi PS4 led issue isn't fixed + SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS4, "0"); +#endif SDL_AddEventWatch(&SDLEventWatcher, this);