All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SDL_HapticEffect Union Reference

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

#include <SDL_haptic.h>

Public Attributes

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

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:

   |    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

Definition at line 787 of file SDL_haptic.h.

Member Data Documentation

SDL_HapticCondition SDL_HapticEffect::condition

Condition effect.

Definition at line 793 of file SDL_haptic.h.

SDL_HapticConstant SDL_HapticEffect::constant

Constant effect.

Definition at line 791 of file SDL_haptic.h.

SDL_HapticCustom SDL_HapticEffect::custom

Custom effect.

Definition at line 796 of file SDL_haptic.h.

SDL_HapticLeftRight SDL_HapticEffect::leftright

Left/Right effect.

Definition at line 795 of file SDL_haptic.h.

Referenced by SDL_HapticRumbleInit(), and SDL_HapticRumblePlay().

SDL_HapticPeriodic SDL_HapticEffect::periodic

Periodic effect.

Definition at line 792 of file SDL_haptic.h.

Referenced by SDL_HapticRumbleInit(), and SDL_HapticRumblePlay().

SDL_HapticRamp SDL_HapticEffect::ramp

Ramp effect.

Definition at line 794 of file SDL_haptic.h.

Uint16 SDL_HapticEffect::type

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