From e6f9fe1f60d555211dbbbf1b6cbf27008ba5ee73 Mon Sep 17 00:00:00 2001
From: Vitor Kiguchi <vitor-kiguchi@hotmail.com>
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 | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/input_common/sdl/sdl_impl.cpp b/src/input_common/sdl/sdl_impl.cpp
index c8d9eb2bca..e865a68316 100644
--- a/src/input_common/sdl/sdl_impl.cpp
+++ b/src/input_common/sdl/sdl_impl.cpp
@@ -508,6 +508,13 @@ SDLState::SDLState() {
     if (SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1") == SDL_FALSE) {
         LOG_ERROR(Input, "Failed to set hint for background events with: {}", SDL_GetError());
     }
+// these hints are only defined on sdl2.0.9 or higher
+#if SDL_VERSION_ATLEAST(2, 0, 9)
+#if !SDL_VERSION_ATLEAST(2, 0, 12)
+    // There are also hints to toggle the individual drivers if needed.
+    SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI, "0");
+#endif
+#endif
 
     SDL_AddEventWatch(&SDLEventWatcher, this);