arsa  2.7
Public Attributes | List of all members
SDL_HapticEffect Union Reference

The generic template for any haptic effect. More...

#include <SDL_haptic.h>

Public Attributes

Uint16 type
 
SDL_HapticConstant constant
 
SDL_HapticPeriodic periodic
 
SDL_HapticCondition condition
 
SDL_HapticRamp ramp
 
SDL_HapticLeftRight leftright
 
SDL_HapticCustom custom
 

Detailed Description

The generic template for any haptic effect.

All values max at 32767 (0x7FFF). Signed values also can be negative. Time values unless specified otherwise are in milliseconds.

You can also pass SDL_HAPTIC_INFINITY to length instead of a 0-32767 value. Neither delay, interval, attack_length nor fade_length support SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends.

Additionally, the SDL_HAPTIC_RAMP effect does not support a duration of SDL_HAPTIC_INFINITY.

Button triggers may not be supported on all devices, it is advised to not use them if possible. Buttons start at index 1 instead of index 0 like the joystick.

If both attack_length and fade_level are 0, the envelope is not used, otherwise both values are used.

Common parts:

// Replay - All effects have this
Uint32 length; // Duration of effect (ms).
Uint16 delay; // Delay before starting effect.
// Trigger - All effects have this
Uint16 button; // Button that triggers effect.
Uint16 interval; // How soon before effect can be triggered again.
// Envelope - All effects except condition effects have this
Uint16 attack_length; // Duration of the attack (ms).
Uint16 attack_level; // Level at the start of the attack.
Uint16 fade_length; // Duration of the fade out (ms).
Uint16 fade_level; // Level at the end of the fade.

Here we have an example of a constant effect evolution in time:

Strength
^
|
|    effect level -->  _________________
|                     /                 \
|                    /                   \
|                   /                     \
|                  /                       \
| attack_level --> |                        \
|                  |                        |  <---  fade_level
|
+--------------------------------------------------> Time
                   [--]                 [---]
                   attack_length        fade_length

[------------------][-----------------------]
delay               length

Note either the attack_level or the fade_level may be above the actual effect level.

See also
SDL_HapticConstant
SDL_HapticPeriodic
SDL_HapticCondition
SDL_HapticRamp
SDL_HapticLeftRight
SDL_HapticCustom

Definition at line 800 of file SDL_haptic.h.

Member Data Documentation

◆ condition

SDL_HapticCondition SDL_HapticEffect::condition

Condition effect.

Definition at line 806 of file SDL_haptic.h.

◆ constant

SDL_HapticConstant SDL_HapticEffect::constant

Constant effect.

Definition at line 804 of file SDL_haptic.h.

◆ custom

SDL_HapticCustom SDL_HapticEffect::custom

Custom effect.

Definition at line 809 of file SDL_haptic.h.

◆ leftright

SDL_HapticLeftRight SDL_HapticEffect::leftright

Left/Right effect.

Definition at line 808 of file SDL_haptic.h.

◆ periodic

SDL_HapticPeriodic SDL_HapticEffect::periodic

Periodic effect.

Definition at line 805 of file SDL_haptic.h.

◆ ramp

SDL_HapticRamp SDL_HapticEffect::ramp

Ramp effect.

Definition at line 807 of file SDL_haptic.h.

◆ type

Uint16 SDL_HapticEffect::type

Effect type.

Definition at line 803 of file SDL_haptic.h.


The documentation for this union was generated from the following file: