A structure containing a template for the SDL_HAPTIC_CUSTOM effect.
Defined in <SDL3/SDL_haptic.h>
typedef struct SDL_HapticCustom
{/* Header */
/**< SDL_HAPTIC_CUSTOM */
Uint16 type; /**< 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;
/* Custom */
/**< Axes to use, minimum of one. */
Uint8 channels; /**< Sample periods. */
Uint16 period; /**< Amount of samples. */
Uint16 samples; /**< Should contain channels*samples items. */
Uint16 *data;
/* 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_HapticCustom;
This struct is exclusively for the SDL_HAPTIC_CUSTOM effect.
A custom force feedback effect is much like a periodic effect, where the application can define its exact shape. You will have to allocate the data yourself. Data should consist of channels * samples Uint16 samples.
If channels is one, the effect is rotated using the defined direction. Otherwise it uses the samples in data for the different axes.
This struct is available since SDL 3.1.3.