Mercurial > sdl-ios-xcode
diff test/testhaptic.c @ 2748:5668c3dfe7bc
Allow testing haptic devices by index.
author | Edgar Simo <bobbens@gmail.com> |
---|---|
date | Thu, 04 Sep 2008 13:43:39 +0000 |
parents | 0906692aa6a4 |
children | 9de326b3099c |
line wrap: on
line diff
--- a/test/testhaptic.c Tue Sep 02 20:27:47 2008 +0000 +++ b/test/testhaptic.c Thu Sep 04 13:43:39 2008 +0000 @@ -19,7 +19,7 @@ #include <stdio.h> /* printf */ #include <string.h> /* strstr */ - +#include <ctype.h> /* isdigit */ static SDL_Haptic *haptic; @@ -42,20 +42,29 @@ { int i; char *name; + int index; SDL_HapticEffect efx[5]; int id[5]; int nefx; unsigned int supported; name = NULL; + index = -1; if (argc > 1) { name = argv[1]; if ((strcmp(name, "--help") == 0) || (strcmp(name, "-h") == 0)) { - printf("USAGE: %s [device name]\n" - "If device name is specified, it will try to find a device whose name\n" - "contains device name for testing.\n", argv[0]); + printf("USAGE: %s [device]\n" + "If device is a two-digit number it'll use it as an index, otherwise\n" + "it'll use it as if it were part of the device's name.\n", + argv[0]); return 0; } + + i = strlen(name); + if ((i < 3) && isdigit(name[0]) && ((i == 1) || isdigit(name[1]))) { + index = atoi(name); + name = NULL; + } } /* Initialize the force feedbackness */ @@ -63,9 +72,9 @@ SDL_INIT_HAPTIC); printf("%d Haptic devices detected.\n", SDL_NumHaptics()); if (SDL_NumHaptics() > 0) { - /* We'll just use the first force feedback device found */ + /* We'll just use index or the first force feedback device found */ if (name == NULL) { - i = 0; + i = (index != -1) ? index : 0; } /* Try to find matching device */ else { @@ -83,7 +92,8 @@ haptic = SDL_HapticOpen(i); if (haptic == NULL) { - perror("Unable to create the haptic device"); + printf("Unable to create the haptic device: %s\n", + SDL_GetError()); return 1; } printf("Device: %s\n", SDL_HapticName(i));