Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Updated button trigger stuff.
- Loading branch information
Showing
with
25 additions
and
5 deletions.
-
+1
−1
src/haptic/darwin/SDL_syshaptic.c
-
+24
−4
src/haptic/linux/SDL_syshaptic.c
|
@@ -524,7 +524,7 @@ FFGetTriggerButton( Uint16 button ) |
|
|
dwTriggerButton = FFEB_NOTRIGGER; |
|
|
|
|
|
if (button != 0) { |
|
|
dwTriggerButton = FFJOFS_BUTTON(button); |
|
|
dwTriggerButton = FFJOFS_BUTTON(button - 1); |
|
|
} |
|
|
|
|
|
return dwTriggerButton; |
|
|
|
@@ -453,6 +453,25 @@ SDL_SYS_HapticQuit(void) |
|
|
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 @@ SDL_SYS_ToDirection( SDL_HapticDirection * dir ) |
|
|
return 0; |
|
|
} |
|
|
|
|
|
|
|
|
#define CLAMP(x) (((x) > 32767) ? 32767 : x) |
|
|
/* |
|
|
* Initializes the linux effect struct from a haptic_effect. |
|
@@ -520,7 +540,7 @@ SDL_SYS_ToFFEffect( struct ff_effect * dest, SDL_HapticEffect * src ) |
|
|
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 @@ SDL_SYS_ToFFEffect( struct ff_effect * dest, SDL_HapticEffect * src ) |
|
|
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 @@ SDL_SYS_ToFFEffect( struct ff_effect * dest, SDL_HapticEffect * src ) |
|
|
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 @@ SDL_SYS_ToFFEffect( struct ff_effect * dest, SDL_HapticEffect * src ) |
|
|
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 */ |
|
|