#include "SDL_internal.h"
#ifndef SDL_windowshaptic_c_h_
#define SDL_windowshaptic_c_h_
#include "../SDL_syshaptic.h"
#include "../../core/windows/SDL_directx.h"
#include "../../core/windows/SDL_xinput.h"
#ifdef __cplusplus
extern "C" {
#endif
struct haptic_hwdata
{
#ifdef SDL_HAPTIC_DINPUT
LPDIRECTINPUTDEVICE8 device;
#endif
DWORD axes[3]; bool is_joystick; SDL_Thread *thread;
SDL_Mutex *mutex;
Uint64 stopTicks;
SDL_AtomicInt stopThread;
};
#ifdef SDL_HAPTIC_DINPUT
struct haptic_hweffect
{
DIEFFECT effect;
LPDIRECTINPUTEFFECT ref;
};
#endif
typedef struct SDL_hapticlist_item
{
SDL_HapticID instance_id;
char *name;
SDL_Haptic *haptic;
#ifdef SDL_HAPTIC_DINPUT
DIDEVICEINSTANCE instance;
DIDEVCAPS capabilities;
#endif
struct SDL_hapticlist_item *next;
} SDL_hapticlist_item;
extern SDL_hapticlist_item *SDL_hapticlist;
extern bool SDL_SYS_AddHapticDevice(SDL_hapticlist_item *item);
extern bool SDL_SYS_RemoveHapticDevice(SDL_hapticlist_item *prev, SDL_hapticlist_item *item);
#ifdef __cplusplus
}
#endif
#endif