diff --git a/include/SDL_haptic.h b/include/SDL_haptic.h index b43f6fb6a..18c74eff6 100644 --- a/include/SDL_haptic.h +++ b/include/SDL_haptic.h @@ -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 @@ -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 */ diff --git a/src/haptic/linux/SDL_syshaptic.c b/src/haptic/linux/SDL_syshaptic.c index c18b7a03a..b8e7f1338 100644 --- a/src/haptic/linux/SDL_syshaptic.c +++ b/src/haptic/linux/SDL_syshaptic.c @@ -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."); }