#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;
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;
bool removed;
SDL_Joystick *joystick;
bool runLoopAttached;
int instance_id;
SDL_GUID guid;
int steam_virtual_gamepad_slot;
bool nacon_revolution_x_unlimited;
struct joystick_hwdata *pNext; };
typedef struct joystick_hwdata recDevice;
#endif