# HG changeset patch # User Edgar Simo # Date 1217430045 0 # Node ID fe346eddd3fb97bfd2925b7ca5e09952f3a23741 # Parent f5bcc926bac4c2bde78178b7ba6f3b88253f3b19 Updated button trigger stuff. diff -r f5bcc926bac4 -r fe346eddd3fb src/haptic/darwin/SDL_syshaptic.c --- a/src/haptic/darwin/SDL_syshaptic.c Wed Jul 30 14:50:00 2008 +0000 +++ b/src/haptic/darwin/SDL_syshaptic.c Wed Jul 30 15:00:45 2008 +0000 @@ -524,7 +524,7 @@ dwTriggerButton = FFEB_NOTRIGGER; if (button != 0) { - dwTriggerButton = FFJOFS_BUTTON(button); + dwTriggerButton = FFJOFS_BUTTON(button - 1); } return dwTriggerButton; diff -r f5bcc926bac4 -r fe346eddd3fb src/haptic/linux/SDL_syshaptic.c --- a/src/haptic/linux/SDL_syshaptic.c Wed Jul 30 14:50:00 2008 +0000 +++ b/src/haptic/linux/SDL_syshaptic.c Wed Jul 30 15:00:45 2008 +0000 @@ -453,6 +453,25 @@ SDL_hapticlist[0].fname = NULL; } + +/* + * Converts an SDL button to a ff_trigger button. + */ +static Uint16 +SDL_SYS_ToButton( Uint16 button ) +{ + Uint16 ff_button; + + ff_button = 0; + + if (button != 0) { + ff_button = BTN_GAMEPAD + button - 1; + } + + return ff_button; +} + + /* * Returns the ff_effect usable direction from a SDL_HapticDirection. */ @@ -488,6 +507,7 @@ return 0; } + #define CLAMP(x) (((x) > 32767) ? 32767 : x) /* * Initializes the linux effect struct from a haptic_effect. @@ -520,7 +540,7 @@ dest->replay.delay = CLAMP(constant->delay); /* Trigger */ - dest->trigger.button = CLAMP(constant->button); + dest->trigger.button = SDL_SYS_ToButton(constant->button); dest->trigger.interval = CLAMP(constant->interval); /* Constant */ @@ -552,7 +572,7 @@ dest->replay.delay = CLAMP(periodic->delay); /* Trigger */ - dest->trigger.button = CLAMP(periodic->button); + dest->trigger.button = SDL_SYS_ToButton(periodic->button); dest->trigger.interval = CLAMP(periodic->interval); /* Periodic */ @@ -604,7 +624,7 @@ dest->replay.delay = CLAMP(condition->delay); /* Trigger */ - dest->trigger.button = CLAMP(condition->button); + dest->trigger.button = SDL_SYS_ToButton(condition->button); dest->trigger.interval = CLAMP(condition->interval); /* Condition */ @@ -639,7 +659,7 @@ dest->replay.delay = CLAMP(ramp->delay); /* Trigger */ - dest->trigger.button = CLAMP(ramp->button); + dest->trigger.button = SDL_SYS_ToButton(ramp->button); dest->trigger.interval = CLAMP(ramp->interval); /* Ramp */