| SDL_HapticEffectType | type | エフェクトの種類 |
| SDL_HapticConstant | constant | 一定エフェクト |
| SDL_HapticPeriodic | periodic | 周期エフェクト |
| SDL_HapticCondition | condition | 条件エフェクト |
| SDL_HapticRamp | ramp | 増減エフェクト |
| SDL_HapticLeftRight | leftright | 左右エフェクト |
| SDL_HapticCustom | custom | カスタムエフェクト |
全ての項目の最大値は32767(0x7FFF)で, 符号ありの型の場合は負の数も可能である. 時間の項目は, 特別な場合を除き, ミリ秒単位である.
lengthには0~32767の代わりにSDL_HAPTIC_INFINITYを渡すことができる.
delay, interval, attack_length, fade_lengthはSDL_HAPTIC_INFINITYに対応していない.
立ち下がりの値はエフェクトが終わるまで使われない.
さらに, SDL_HAPTIC_RAMPの継続時間(attack_length, fade_length)はSDL_HAPTIC_INFINITYに対応していない.
ボタントリガは全てのデバイスには対応していないため, 可能ならば使わない方がよい. ボタン番号はジョイスティックとは異なり1から始まる.
attack_lengthとfade_levelの両方が0ならば, エンベロープは使われない.
どちらかが0を超えていれば使われる.
この共用体に含まれる全ての構造体には次の項目がある:
| 再生 (この要目は左右エフェクトを除く全てのエフェクトにある) | ||
| Uint32 | length | 継続時間(ミリ秒) |
| Uint16 | delay | エフェクトが始まるまでの待ち時間 |
| トリガ (この要目は左右エフェクトを除く全てのエフェクトにある) | ||
| Uint16 | button | エフェクトを引き起こすボタン |
| Uint16 | interval | エフェクトを再び引き起こす時間 |
| エンベロープ (この要目は条件エフェクトと左右エフェクトを除く全てのエフェクトにある) | ||
| Uint16 | attack_length | 立ち上がりの継続時間(ミリ秒) |
| Uint16 | attack_level | 立ち上がりの強さ |
| Uint16 | fade_length | 立ち下げの継続時間(ミリ秒) |
| Uint16 | fade_level | 立ち下げの強さ |
一定エフェクトのエンベロープの時間は次のようになっている:
強さ
^
|
| effect level --> _________________
| / ¥
| / ¥
| / ¥
| / ¥
| attack_level --> | ¥
| | | <--- fade_level
|
+--------------------------------------------------> 時間
[--] [---]
attack_length fade_length
[------------------][-----------------------]
attack_levelとfade_levelは, effect levelより上であることに注意すること.