Skip to content

Commit

Permalink
Probable fix for compile errors on Mac OS and (non-VS) Win32
Browse files Browse the repository at this point in the history
  • Loading branch information
Jimbly committed Mar 21, 2020
1 parent dc36f13 commit 417713a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
8 changes: 7 additions & 1 deletion configure.ac
Expand Up @@ -3291,6 +3291,10 @@ CheckHIDAPI()
*-*-*bsd* )
onlylibusb=yes
;;
# RAWINPUT is only available on Win32, but can be enabled if HIDAPI is
*-*-cygwin* | *-*-mingw32*)
userawinput=yes
;;
esac

AC_ARG_ENABLE(hidapi,
Expand All @@ -3316,7 +3320,9 @@ AS_HELP_STRING([--enable-hidapi], [use HIDAPI for low level joystick drivers [[d

if test x$hidapi_support = xyes; then
AC_DEFINE(SDL_JOYSTICK_HIDAPI, 1, [ ])
AC_DEFINE(SDL_JOYSTICK_RAWINPUT, 1, [ ])
if test x$userawinput = 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"
Expand Down
6 changes: 4 additions & 2 deletions src/joystick/windows/SDL_rawinputjoystick.c
Expand Up @@ -241,6 +241,7 @@ static SDL_HIDAPI_DeviceDriver *
RAWINPUT_GetDeviceDriver(SDL_RAWINPUT_Device *device)
{
int i;
SDL_GameControllerType type;

if (SDL_ShouldIgnoreJoystick(device->name, device->guid)) {
return NULL;
Expand All @@ -253,7 +254,7 @@ RAWINPUT_GetDeviceDriver(SDL_RAWINPUT_Device *device)
return NULL;
}

SDL_GameControllerType type = SDL_GetJoystickGameControllerType("", device->vendor_id, device->product_id, -1, 0, 0, 0);
type = SDL_GetJoystickGameControllerType("", device->vendor_id, device->product_id, -1, 0, 0, 0);

for (i = 0; i < SDL_arraysize(SDL_RAWINPUT_drivers); ++i) {
SDL_HIDAPI_DeviceDriver *driver = SDL_RAWINPUT_drivers[i];
Expand Down Expand Up @@ -365,14 +366,15 @@ RAWINPUT_DelDevice(SDL_RAWINPUT_Device *device, SDL_bool send_event)
SDL_RAWINPUT_Device *curr, *last;
for (curr = SDL_RAWINPUT_devices, last = NULL; curr; last = curr, curr = curr->next) {
if (curr == device) {
SDL_Joystick *joystick;
if (last) {
last->next = curr->next;
} else {
SDL_RAWINPUT_devices = curr->next;
}
--SDL_RAWINPUT_numjoysticks;

SDL_Joystick *joystick = device->joystick;
joystick = device->joystick;
if (joystick) {
/* Detach from joystick */
RAWINPUT_JoystickClose(joystick);
Expand Down

0 comments on commit 417713a

Please sign in to comment.