#include "SDL_internal.h"
#ifndef SDL_syshaptic_h_
#define SDL_syshaptic_h_
#ifdef __cplusplus
extern "C" {
#endif
struct haptic_effect
{
SDL_HapticEffect effect; struct haptic_hweffect *hweffect; };
struct SDL_Haptic
{
SDL_HapticID instance_id; char *name;
struct haptic_effect *effects; int neffects; int nplaying; Uint32 supported; int naxes;
struct haptic_hwdata *hwdata; int ref_count;
SDL_HapticEffectID rumble_id; SDL_HapticEffect rumble_effect; struct SDL_Haptic *next; };
extern bool SDL_SYS_HapticInit(void);
extern int SDL_SYS_NumHaptics(void);
extern SDL_HapticID SDL_SYS_HapticInstanceID(int index);
extern const char *SDL_SYS_HapticName(int index);
extern bool SDL_SYS_HapticOpen(SDL_Haptic *haptic);
extern int SDL_SYS_HapticMouse(void);
extern bool SDL_SYS_JoystickIsHaptic(SDL_Joystick *joystick);
extern bool SDL_SYS_HapticOpenFromJoystick(SDL_Haptic *haptic,
SDL_Joystick *joystick);
extern bool SDL_SYS_JoystickSameHaptic(SDL_Haptic *haptic,
SDL_Joystick *joystick);
extern void SDL_SYS_HapticClose(SDL_Haptic *haptic);
extern void SDL_SYS_HapticQuit(void);
extern bool SDL_SYS_HapticNewEffect(SDL_Haptic *haptic,
struct haptic_effect *effect,
const SDL_HapticEffect *base);
extern bool SDL_SYS_HapticUpdateEffect(SDL_Haptic *haptic,
struct haptic_effect *effect,
const SDL_HapticEffect *data);
extern bool SDL_SYS_HapticRunEffect(SDL_Haptic *haptic,
struct haptic_effect *effect,
Uint32 iterations);
extern bool SDL_SYS_HapticStopEffect(SDL_Haptic *haptic,
struct haptic_effect *effect);
extern void SDL_SYS_HapticDestroyEffect(SDL_Haptic *haptic,
struct haptic_effect *effect);
extern int SDL_SYS_HapticGetEffectStatus(SDL_Haptic *haptic,
struct haptic_effect *effect);
extern bool SDL_SYS_HapticSetGain(SDL_Haptic *haptic, int gain);
extern bool SDL_SYS_HapticSetAutocenter(SDL_Haptic *haptic, int autocenter);
extern bool SDL_SYS_HapticPause(SDL_Haptic *haptic);
extern bool SDL_SYS_HapticResume(SDL_Haptic *haptic);
extern bool SDL_SYS_HapticStopAll(SDL_Haptic *haptic);
#ifdef __cplusplus
}
#endif
#endif