# HG changeset patch # User Edgar Simo # Date 1215628151 0 # Node ID f12ae0bae4681c1ae9923bbaa76fcfb2dbef1d9b # Parent e6ad7e678fcaa43fb12adbcff30f02b0399be5ed Fixed bugs in documentation. Improved code correctness a bit. diff -r e6ad7e678fca -r f12ae0bae468 include/SDL_haptic.h --- a/include/SDL_haptic.h Wed Jul 09 18:23:54 2008 +0000 +++ b/include/SDL_haptic.h Wed Jul 09 18:29:11 2008 +0000 @@ -306,16 +306,16 @@ * If type is SDL_HAPTIC_POLAR, direction is encoded by hundredths of a * degree starting north and turning clockwise. The cardinal directions would be: * - North: 0 (0 degrees) - * - West: 9000 (90 degrees) + * - East: 9000 (90 degrees) * - South: 18000 (180 degrees) - * - East: 27000 (270 degrees) + * - West: 27000 (270 degrees) * * If type is SDL_HAPTIC_CARTESIAN, direction is encoded by position. * The cardinal directions would be: * - North: 0,-1 - * - West: -1, 0 + * - East: -1, 0 * - South: 0, 1 - * - East: 1, 0 + * - West: 1, 0 * * * Example: @@ -323,7 +323,7 @@ * SDL_HapticDirection direction; * * direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding. - * direction.dir = 180000; // Force comes from the south meaning the user will + * direction.dir = 18000; // Force comes from the south meaning the user will * // have to pull the stick to counteract. * \endcode * diff -r e6ad7e678fca -r f12ae0bae468 src/haptic/linux/SDL_syshaptic.c --- a/src/haptic/linux/SDL_syshaptic.c Wed Jul 09 18:23:54 2008 +0000 +++ b/src/haptic/linux/SDL_syshaptic.c Wed Jul 09 18:29:11 2008 +0000 @@ -72,7 +72,7 @@ */ struct haptic_hweffect { - struct ff_effect effect; + struct ff_effect effect; /* The linux kernel effect structure. */ }; @@ -343,20 +343,19 @@ SDL_SYS_ToDirection( SDL_HapticDirection * dir ) { Uint32 tmp; - float f; + float f; /* Ideally we'd use fixed point math instead of floats... */ switch (dir->type) { case SDL_HAPTIC_POLAR: /* Linux directions are inverted. */ tmp = (((18000 + dir->dir[0]) % 36000) * 0xFFFF) / 36000; return (Uint16) tmp; - break; case SDL_HAPTIC_CARTESIAN: + /* We must invert "x" and "y" to go clockwise. */ f = atan2(dir->dir[0], dir->dir[1]); tmp = (int)(f*18000./M_PI) % 36000; tmp = (tmp * 0xFFFF) / 36000; return (Uint16) tmp; - break; default: return -1;