Skip to content

Commit

Permalink
Fixed crash trying to open HIDAPI controller as a haptics device on W…
Browse files Browse the repository at this point in the history
…indows
  • Loading branch information
slouken committed Aug 23, 2018
1 parent 38ae498 commit f1bc1c1
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 4 deletions.
Empty file modified Android.mk 100644 → 100755
Empty file.
Empty file modified Xcode-iOS/Test/TestiPhoneOS.xcodeproj/project.pbxproj 100644 → 100755
Empty file.
Empty file modified Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj 100644 → 100755
Empty file.
15 changes: 11 additions & 4 deletions src/haptic/windows/SDL_windowshaptic.c
Expand Up @@ -157,7 +157,7 @@ SDL_SYS_HapticMouse(void)

/* Grab the first mouse haptic device we find. */
for (item = SDL_hapticlist; item != NULL; item = item->next) {
if (item->capabilities.dwDevType == DI8DEVCLASS_POINTER ) {
if (item->capabilities.dwDevType == DI8DEVCLASS_POINTER) {
return index;
}
++index;
Expand All @@ -173,14 +173,16 @@ SDL_SYS_HapticMouse(void)
int
SDL_SYS_JoystickIsHaptic(SDL_Joystick * joystick)
{
const struct joystick_hwdata *hwdata = joystick->hwdata;
if (joystick->driver != &SDL_WINDOWS_JoystickDriver) {
return 0;
}
#if SDL_HAPTIC_XINPUT
if (hwdata->bXInputHaptic) {
if (joystick->hwdata->bXInputHaptic) {
return 1;
}
#endif
#if SDL_HAPTIC_DINPUT
if (hwdata->Capabilities.dwFlags & DIDC_FORCEFEEDBACK) {
if (joystick->hwdata->Capabilities.dwFlags & DIDC_FORCEFEEDBACK) {
return 1;
}
#endif
Expand All @@ -193,6 +195,9 @@ SDL_SYS_JoystickIsHaptic(SDL_Joystick * joystick)
int
SDL_SYS_JoystickSameHaptic(SDL_Haptic * haptic, SDL_Joystick * joystick)
{
if (joystick->driver != &SDL_WINDOWS_JoystickDriver) {
return 0;
}
if (joystick->hwdata->bXInputHaptic != haptic->hwdata->bXInputHaptic) {
return 0; /* one is XInput, one is not; not the same device. */
} else if (joystick->hwdata->bXInputHaptic) {
Expand All @@ -208,6 +213,8 @@ SDL_SYS_JoystickSameHaptic(SDL_Haptic * haptic, SDL_Joystick * joystick)
int
SDL_SYS_HapticOpenFromJoystick(SDL_Haptic * haptic, SDL_Joystick * joystick)
{
SDL_assert(joystick->driver == &SDL_WINDOWS_JoystickDriver);

if (joystick->hwdata->bXInputDevice) {
return SDL_XINPUT_HapticOpenFromJoystick(haptic, joystick);
} else {
Expand Down

0 comments on commit f1bc1c1

Please sign in to comment.