changeset 2511:f12ae0bae468 gsoc2008_force_feedback

Fixed bugs in documentation. Improved code correctness a bit.
author Edgar Simo <bobbens@gmail.com>
date Wed, 09 Jul 2008 18:29:11 +0000
parents e6ad7e678fca
children ef147ee4896c
files include/SDL_haptic.h src/haptic/linux/SDL_syshaptic.c
diffstat 2 files changed, 8 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- 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
  *
--- 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;