Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
More verbosity and error checking.
- Loading branch information
Showing
with
22 additions
and
4 deletions.
-
+11
−4
src/haptic/SDL_haptic.c
-
+11
−0
src/haptic/linux/SDL_syshaptic.c
|
@@ -66,13 +66,20 @@ ValidHaptic(SDL_Haptic * haptic) |
|
|
int valid; |
|
|
|
|
|
valid = 0; |
|
|
for (i = 0; i < SDL_numhaptics; i++) { |
|
|
if (SDL_haptics[i] == haptic) { |
|
|
valid = 1; |
|
|
break; |
|
|
if (haptic != NULL) { |
|
|
for (i = 0; i < SDL_numhaptics; i++) { |
|
|
if (SDL_haptics[i] == haptic) { |
|
|
valid = 1; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
/* Create the error here. */ |
|
|
if (valid == 0) { |
|
|
SDL_SetError("Haptic: Invalid haptic device identifier"); |
|
|
} |
|
|
|
|
|
return valid; |
|
|
} |
|
|
|
|
|
|
@@ -395,17 +395,28 @@ SDL_SYS_HapticOpenFromJoystick(SDL_Haptic * haptic, SDL_Joystick * joystick) |
|
|
int fd; |
|
|
int ret; |
|
|
|
|
|
|
|
|
/* Find the joystick in the haptic list. */ |
|
|
for (i = 0; i < MAX_HAPTICS; i++) { |
|
|
if (SDL_hapticlist[i].fname != NULL) { |
|
|
if (SDL_strcmp(SDL_hapticlist[i].fname, joystick->hwdata->fname) |
|
|
== 0) { |
|
|
haptic->index = i; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
if (i >= MAX_HAPTICS) { |
|
|
SDL_SetError("Haptic: Joystick doesn't have Haptic capabilities"); |
|
|
return -1; |
|
|
} |
|
|
|
|
|
fd = open(joystick->hwdata->fname, O_RDWR, 0); |
|
|
if (fd < 0) { |
|
|
SDL_SetError("Haptic: Unable to open %s: %s", |
|
|
joystick->hwdata->fname, strerror(errno)); |
|
|
return -1; |
|
|
} |
|
|
ret = SDL_SYS_HapticOpenFromFD(haptic, fd); /* Already closes on error. */ |
|
|
if (ret < 0) { |
|
|
return -1; |
|
|