---
name: "SDL_HapticPeriodic"
section: "3type"
platform: "linux"
package: "libsdl3-doc"
version: "3.2.10+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_HapticPeriodic"
---

# SDL\_HapticPeriodic(3type)

A structure containing a template for a Periodic effect.

## NAME

SDL\_HapticPeriodic - A structure containing a template for a Periodic effect.

## HEADER FILE

Defined in SDL3/SDL\_haptic.h

## SYNOPSIS

```
#include "SDL3/SDL.h"
```

**typedef struct SDL\_HapticPeriodic** **{**     **/\* Header \*/**     **Uint16 type;        /\*\*\< SDL\_HAPTIC\_SINE, SDL\_HAPTIC\_SQUARE**                              **SDL\_HAPTIC\_TRIANGLE, SDL\_HAPTIC\_SAWTOOTHUP or**                              **SDL\_HAPTIC\_SAWTOOTHDOWN \*/**     **SDL\_HapticDirection direction;  /\*\*\< Direction of the effect. \*/**     **/\* Replay \*/**     **Uint32 length;      /\*\*\< Duration of the effect. \*/**     **Uint16 delay;       /\*\*\< Delay before starting the effect. \*/**     **/\* Trigger \*/**     **Uint16 button;      /\*\*\< Button that triggers the effect. \*/**     **Uint16 interval;    /\*\*\< How soon it can be triggered again after button. \*/**     **/\* Periodic \*/**     **Uint16 period;      /\*\*\< Period of the wave. \*/**     **Sint16 magnitude;   /\*\*\< Peak value; if negative, equivalent to 180 degrees extra phase shift. \*/**     **Sint16 offset;      /\*\*\< Mean value of the wave. \*/**     **Uint16 phase;       /\*\*\< Positive phase shift given by hundredth of a degree. \*/**     **/\* Envelope \*/**     **Uint16 attack\_length;   /\*\*\< Duration of the attack. \*/**     **Uint16 attack\_level;    /\*\*\< Level at the start of the attack. \*/**     **Uint16 fade\_length; /\*\*\< Duration of the fade. \*/**     **Uint16 fade\_level;  /\*\*\< Level at the end of the fade. \*/** **} SDL\_HapticPeriodic;**

## DESCRIPTION

The struct handles the following effects:

•  **SDL\_HAPTIC\_SINE**

•  **SDL\_HAPTIC\_SQUARE**

•  **SDL\_HAPTIC\_TRIANGLE**

•  **SDL\_HAPTIC\_SAWTOOTHUP**

•  **SDL\_HAPTIC\_SAWTOOTHDOWN**

A periodic effect consists in a wave-shaped effect that repeats itself over time. The type determines the shape of the wave and the parameters determine the dimensions of the wave.

Phase is given by hundredth of a degree meaning that giving the phase a value of 9000 will displace it 25% of its period. Here are sample values:

• 0: No phase displacement.

• 9000: Displaced 25% of its period.

• 18000: Displaced 50% of its period.

• 27000: Displaced 75% of its period.

• 36000: Displaced 100% of its period, same as 0, but 0 is preferred.

Examples:

-

  ```
    SDL_HAPTIC_SINE
      __      __      __      __
     /      /      /      /
    /    __/    __/    __/
    SDL_HAPTIC_SQUARE
     __    __    __    __    __
    |  |  |  |  |  |  |  |  |  |
    |  |__|  |__|  |__|  |__|  |
    SDL_HAPTIC_TRIANGLE
      /    /    /    /    /   /    /    /    /    /
    /
    SDL_HAPTIC_SAWTOOTHUP
      /|  /|  /|  /|  /|  /|  /|
     / | / | / | / | / | / | / |
    /  |/  |/  |/  |/  |/  |/  |
    SDL_HAPTIC_SAWTOOTHDOWN
      |  |  |  |  |  |  |
      |  |  |  |  |  |  |

  ```

## AVAILABILITY

This struct is available since SDL 3.2.0.

## SEE ALSO

**•**(3), [**SDL\_HAPTIC\_SINE**(3)](/SDL_HAPTIC_SINE/3.md), **•**(3), [**SDL\_HAPTIC\_SQUARE**(3)](/SDL_HAPTIC_SQUARE/3.md), **•**(3), [**SDL\_HAPTIC\_TRIANGLE**(3)](/SDL_HAPTIC_TRIANGLE/3.md), **•**(3), [**SDL\_HAPTIC\_SAWTOOTHUP**(3)](/SDL_HAPTIC_SAWTOOTHUP/3.md), **•**(3), [**SDL\_HAPTIC\_SAWTOOTHDOWN**(3)](/SDL_HAPTIC_SAWTOOTHDOWN/3.md), **•**(3), [**SDL\_HapticEffect**(3type)](/SDL_HapticEffect/3type.md)
