---
name: "SDL_HapticCustom"
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_HapticCustom"
---

# SDL\_HapticCustom(3type)

A structure containing a template for the SDL\_HAPTIC\_CUSTOM effect.

## NAME

SDL\_HapticCustom - A structure containing a template for the  **SDL\_HAPTIC\_CUSTOM**\
  effect.

## HEADER FILE

Defined in SDL3/SDL\_haptic.h

## SYNOPSIS

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

**typedef struct SDL\_HapticCustom** **{**     **/\* Header \*/**     **Uint16 type;            /\*\*\< SDL\_HAPTIC\_CUSTOM \*/**     **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. \*/**     **/\* Custom \*/**     **Uint8 channels;         /\*\*\< Axes to use, minimum of one. \*/**     **Uint16 period;          /\*\*\< Sample periods. \*/**     **Uint16 samples;         /\*\*\< Amount of samples. \*/**     **Uint16 \*data;           /\*\*\< Should contain channels\*samples items. \*/**     **/\* 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\_HapticCustom;**

## DESCRIPTION

This struct is exclusively for the  **SDL\_HAPTIC\_CUSTOM**

effect.

A custom force feedback effect is much like a periodic effect, where the application can define its exact shape. You will have to allocate the data yourself. Data should consist of channels \* samples  **Uint16**

samples.

If channels is one, the effect is rotated using the defined direction. Otherwise it uses the samples in data for the different axes.

## AVAILABILITY

This struct is available since SDL 3.2.0.

## SEE ALSO

**•**(3), [**SDL\_HAPTIC\_CUSTOM**(3)](/SDL_HAPTIC_CUSTOM/3.md), **•**(3), [**SDL\_HapticEffect**(3type)](/SDL_HapticEffect/3type.md)
