SDL Library

Dependents:   H261_decoder

Embed: (wiki syntax)

« Back to documentation index

SDL_HapticEffect Union Reference

SDL_HapticEffect Union Reference

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

#include <SDL_haptic.h>

Data Fields

Uint16 type
 Effect type.
SDL_HapticConstant constant
 Constant effect.
SDL_HapticPeriodic periodic
 Periodic effect.
SDL_HapticCondition condition
 Condition effect.
SDL_HapticRamp ramp
 Ramp effect.
SDL_HapticLeftRight leftright
 Left/Right effect.
SDL_HapticCustom custom
 Custom effect.

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 787 of file SDL_haptic.h.


Field Documentation

Condition effect.

Definition at line 793 of file SDL_haptic.h.

Constant effect.

Definition at line 791 of file SDL_haptic.h.

Custom effect.

Definition at line 796 of file SDL_haptic.h.

Left/Right effect.

Definition at line 795 of file SDL_haptic.h.

Periodic effect.

Definition at line 792 of file SDL_haptic.h.

Ramp effect.

Definition at line 794 of file SDL_haptic.h.

Effect type.

Definition at line 790 of file SDL_haptic.h.