Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Fixed bugs in documentation.
Browse files Browse the repository at this point in the history
Improved code correctness a bit.
  • Loading branch information
bobbens committed Jul 9, 2008
1 parent 8da2af6 commit b482ac3
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 9 deletions.
10 changes: 5 additions & 5 deletions include/SDL_haptic.h
Expand Up @@ -306,24 +306,24 @@ typedef struct _SDL_Haptic SDL_Haptic;
* 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:
* \code
* 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
*
Expand Down
7 changes: 3 additions & 4 deletions src/haptic/linux/SDL_syshaptic.c
Expand Up @@ -72,7 +72,7 @@ struct haptic_hwdata
*/
struct haptic_hweffect
{
struct ff_effect effect;
struct ff_effect effect; /* The linux kernel effect structure. */
};


Expand Down Expand Up @@ -343,20 +343,19 @@ static Uint16
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;
Expand Down

0 comments on commit b482ac3

Please sign in to comment.