Mercurial > sdl-ios-xcode
changeset 3080:4094b4f1c3a1
More verbosity and error checking.
author | Edgar Simo <bobbens@gmail.com> |
---|---|
date | Sat, 21 Feb 2009 18:03:22 +0000 |
parents | cfc8b35ad6b1 |
children | 4ccdf20bad6f |
files | src/haptic/SDL_haptic.c src/haptic/linux/SDL_syshaptic.c |
diffstat | 2 files changed, 22 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/haptic/SDL_haptic.c Sat Feb 21 18:02:55 2009 +0000 +++ b/src/haptic/SDL_haptic.c Sat Feb 21 18:03:22 2009 +0000 @@ -66,13 +66,20 @@ 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; }
--- a/src/haptic/linux/SDL_syshaptic.c Sat Feb 21 18:02:55 2009 +0000 +++ b/src/haptic/linux/SDL_syshaptic.c Sat Feb 21 18:03:22 2009 +0000 @@ -395,17 +395,28 @@ 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;