Skip to content

Commit

Permalink
Fixed bug 3446 - The haptic API does not allow to select the directio…
Browse files Browse the repository at this point in the history
…n axes

meyraud705

Added Linux implementation, otherwise you get "Unsupported direction type" error.
Added documentation to explain why one would use SDL_HAPTIC_FIRST_AXIS.
  • Loading branch information
slouken committed Mar 17, 2020
1 parent e6189f4 commit 4c22a21
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
13 changes: 12 additions & 1 deletion include/SDL_haptic.h
Expand Up @@ -338,7 +338,17 @@ typedef struct _SDL_Haptic SDL_Haptic;

/**
* \brief Uses first axis only.
*
* For some device with only one axis (steering wheel,...),
* SDL_HAPTIC_CARTESIAN does not work. SDL_HAPTIC_FIRST_AXIS can be used in
* this case.
* Using SDL_HAPTIC_FIRST_AXIS is equivalent to :
* \code
* SDL_HapticDirection direction;
* direction.type = SDL_HAPTIC_CARTESIAN;
* direction.dir[0] = 1;
* direction.dir[1] = 0;
* direction.dir[2] = 0;
* \endcode
* \sa SDL_HapticDirection
*/
#define SDL_HAPTIC_FIRST_AXIS 3
Expand Down Expand Up @@ -451,6 +461,7 @@ typedef struct _SDL_Haptic SDL_Haptic;
* \sa SDL_HAPTIC_POLAR
* \sa SDL_HAPTIC_CARTESIAN
* \sa SDL_HAPTIC_SPHERICAL
* \sa SDL_HAPTIC_FIRST_AXIS
* \sa SDL_HapticEffect
* \sa SDL_HapticNumAxes
*/
Expand Down
4 changes: 3 additions & 1 deletion src/haptic/linux/SDL_syshaptic.c
Expand Up @@ -718,7 +718,9 @@ SDL_SYS_ToDirection(Uint16 *dest, SDL_HapticDirection * src)
*dest = (Uint16) tmp;
}
break;

case SDL_HAPTIC_FIRST_AXIS:
*dest = 0x4000;
break;
default:
return SDL_SetError("Haptic: Unsupported direction type.");
}
Expand Down

0 comments on commit 4c22a21

Please sign in to comment.