#include "../../SDL_internal.h"
#ifndef SDL_JOYSTICK_IOKIT_H
#define SDL_JOYSTICK_IOKIT_H
#include <IOKit/hid/IOHIDLib.h>
#include <ForceFeedback/ForceFeedback.h>
#include <ForceFeedback/ForceFeedbackConstants.h>
struct recElement
{
IOHIDElementRef elementRef;
IOHIDElementCookie cookie;
uint32_t usagePage, usage;
SInt32 min;
SInt32 max;
SInt32 minReport;
SInt32 maxReport;
struct recElement *pNext;
};
typedef struct recElement recElement;
struct joystick_hwdata
{
IOHIDDeviceRef deviceRef;
io_service_t ffservice;
FFDeviceObjectReference ffdevice;
FFEFFECT *ffeffect;
FFEffectObjectReference ffeffect_ref;
SDL_bool ff_initialized;
char product[256];
uint32_t usage;
uint32_t usagePage;
int axes;
int buttons;
int hats;
int elements;
recElement *firstAxis;
recElement *firstButton;
recElement *firstHat;
SDL_bool removed;
SDL_Joystick *joystick;
SDL_bool runLoopAttached;
int instance_id;
SDL_JoystickGUID guid;
struct joystick_hwdata *pNext;
};
typedef struct joystick_hwdata recDevice;
#endif