A structure containing a template for a Periodic effect.
Defined in <SDL3/SDL_haptic.h>
typedef struct SDL_HapticPeriodic
{/* Header */
/**< SDL_HAPTIC_SINE, SDL_HAPTIC_SQUARE
Uint16 type; SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP or
SDL_HAPTIC_SAWTOOTHDOWN */
/**< Direction of the effect. */
SDL_HapticDirection direction;
/* Replay */
/**< Duration of the effect. */
Uint32 length; /**< Delay before starting the effect. */
Uint16 delay;
/* Trigger */
/**< Button that triggers the effect. */
Uint16 button; /**< How soon it can be triggered again after button. */
Uint16 interval;
/* Periodic */
/**< Period of the wave. */
Uint16 period; /**< Peak value; if negative, equivalent to 180 degrees extra phase shift. */
Sint16 magnitude; /**< Mean value of the wave. */
Sint16 offset; /**< Positive phase shift given by hundredth of a degree. */
Uint16 phase;
/* Envelope */
/**< Duration of the attack. */
Uint16 attack_length; /**< Level at the start of the attack. */
Uint16 attack_level; /**< Duration of the fade. */
Uint16 fade_length; /**< Level at the end of the fade. */
Uint16 fade_level; } SDL_HapticPeriodic;
The struct handles the following effects:
A periodic effect consists in a wave-shaped effect that repeats itself over time. The type determines the shape of the wave and the parameters determine the dimensions of the wave.
Phase is given by hundredth of a degree meaning that giving the phase a value of 9000 will displace it 25% of its period. Here are sample values:
Examples:
SDL_HAPTIC_SINE
__ __ __ __
/ \ / \ / \ /
/ \__/ \__/ \__/
SDL_HAPTIC_SQUARE
__ __ __ __ __
| | | | | | | | | |
| |__| |__| |__| |__| |
SDL_HAPTIC_TRIANGLE
/\ /\ /\ /\ /\
/ \ / \ / \ / \ /
/ \/ \/ \/ \/
SDL_HAPTIC_SAWTOOTHUP
/| /| /| /| /| /| /|
/ | / | / | / | / | / | / |
/ |/ |/ |/ |/ |/ |/ |
SDL_HAPTIC_SAWTOOTHDOWN
\ |\ |\ |\ |\ |\ |\ |
\ | \ | \ | \ | \ | \ | \ |
\| \| \| \| \| \| \|
This struct is available since SDL 3.1.3.