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