The RAWINPUT driver is no longer tied to HIDAPI in any way
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
diff --git a/configure b/configure
index 1f71632..be32733 100755
--- a/configure
+++ b/configure
@@ -24547,10 +24547,6 @@ fi
enable_hidapi_libusb=yes
require_hidapi_libusb=yes
;;
- # RAWINPUT is only available on Win32, but can be enabled if HIDAPI is
- *-*-cygwin* | *-*-mingw*)
- enable_joystick_rawinput=yes
- ;;
esac
hidapi_support=yes
@@ -24646,11 +24642,6 @@ fi
$as_echo "#define SDL_JOYSTICK_HIDAPI 1" >>confdefs.h
- if test x$enable_joystick_rawinput = xyes; then
-
-$as_echo "#define SDL_JOYSTICK_RAWINPUT 1" >>confdefs.h
-
- fi
EXTRA_CFLAGS="$EXTRA_CFLAGS -I$srcdir/src/hidapi/hidapi"
SOURCES="$SOURCES $srcdir/src/joystick/hidapi/*.c"
SOURCES="$SOURCES $srcdir/src/hidapi/SDL_hidapi.c"
@@ -25230,6 +25221,9 @@ $as_echo "#define SDL_AUDIO_DRIVER_WASAPI 1" >>confdefs.h
fi
# Set up files for the joystick library
if test x$enable_joystick = xyes; then
+
+$as_echo "#define SDL_JOYSTICK_RAWINPUT 1" >>confdefs.h
+
if test x$have_dinput = xyes -o x$have_xinput = xyes; then
if test x$have_xinput = xyes; then
diff --git a/configure.ac b/configure.ac
index f54202a..b937115 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3349,10 +3349,6 @@ CheckHIDAPI()
enable_hidapi_libusb=yes
require_hidapi_libusb=yes
;;
- # RAWINPUT is only available on Win32, but can be enabled if HIDAPI is
- *-*-cygwin* | *-*-mingw*)
- enable_joystick_rawinput=yes
- ;;
esac
hidapi_support=yes
@@ -3369,9 +3365,6 @@ CheckHIDAPI()
if test x$hidapi_support = xyes; then
AC_DEFINE(SDL_JOYSTICK_HIDAPI, 1, [ ])
- if test x$enable_joystick_rawinput = xyes; then
- AC_DEFINE(SDL_JOYSTICK_RAWINPUT, 1, [ ])
- fi
EXTRA_CFLAGS="$EXTRA_CFLAGS -I$srcdir/src/hidapi/hidapi"
SOURCES="$SOURCES $srcdir/src/joystick/hidapi/*.c"
SOURCES="$SOURCES $srcdir/src/hidapi/SDL_hidapi.c"
@@ -3797,6 +3790,7 @@ case "$host" in
fi
# Set up files for the joystick library
if test x$enable_joystick = xyes; then
+ AC_DEFINE(SDL_JOYSTICK_RAWINPUT, 1, [ ])
if test x$have_dinput = xyes -o x$have_xinput = xyes; then
if test x$have_xinput = xyes; then
AC_DEFINE(SDL_JOYSTICK_XINPUT, 1, [ ])
diff --git a/include/SDL_hints.h b/include/SDL_hints.h
index d2d902b..08729ef 100644
--- a/include/SDL_hints.h
+++ b/include/SDL_hints.h
@@ -727,19 +727,6 @@ extern "C" {
*/
#define SDL_HINT_JOYSTICK_HIDAPI_XBOX "SDL_JOYSTICK_HIDAPI_XBOX"
- /**
- * \brief A variable controlling whether the HIDAPI driver for XBox controllers on Windows should pull correlated
- * data from XInput.
- *
- * This variable can be set to the following values:
- * "0" - HIDAPI Xbox driver will only use HIDAPI data
- * "1" - HIDAPI Xbox driver will also pull data from XInput, providing better trigger axes, guide button
- * presses, and rumble support
- *
- * The default is "1". This hint applies to any joysticks opened after setting the hint.
- */
-#define SDL_HINT_JOYSTICK_HIDAPI_CORRELATE_XINPUT "SDL_JOYSTICK_HIDAPI_CORRELATE_XINPUT"
-
/**
* \brief A variable controlling whether the HIDAPI driver for Nintendo GameCube controllers should be used.
*
@@ -784,6 +771,19 @@ extern "C" {
#define SDL_HINT_JOYSTICK_RAWINPUT "SDL_JOYSTICK_RAWINPUT"
/**
+ * \brief A variable controlling whether the RAWINPUT driver should pull correlated data from XInput.
+ *
+ * This variable can be set to the following values:
+ * "0" - RAWINPUT driver will only use data from raw input APIs
+ * "1" - RAWINPUT driver will also pull data from XInput, providing
+ * better trigger axes, guide button presses, and rumble support
+ * for Xbox controllers
+ *
+ * The default is "1". This hint applies to any joysticks opened after setting the hint.
+ */
+#define SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT"
+
+ /**
* \brief A variable controlling whether a separate thread should be used
* for handling joystick detection and raw input messages on Windows
*
diff --git a/src/joystick/windows/SDL_rawinputjoystick.c b/src/joystick/windows/SDL_rawinputjoystick.c
index f323b37..1bcf156 100644
--- a/src/joystick/windows/SDL_rawinputjoystick.c
+++ b/src/joystick/windows/SDL_rawinputjoystick.c
@@ -1042,7 +1042,7 @@ RAWINPUT_JoystickOpen(SDL_Joystick *joystick, int device_index)
/* We'll try to get guide button and trigger axes from XInput */
#ifdef SDL_JOYSTICK_RAWINPUT_XINPUT
xinput_device_change = SDL_TRUE;
- ctx->xinput_enabled = SDL_GetHintBoolean(SDL_HINT_JOYSTICK_HIDAPI_CORRELATE_XINPUT, SDL_TRUE);
+ ctx->xinput_enabled = SDL_GetHintBoolean(SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT, SDL_TRUE);
if (ctx->xinput_enabled && (WIN_LoadXInputDLL() < 0 || !XINPUTGETSTATE)) {
ctx->xinput_enabled = SDL_FALSE;
}