21 #include "../../SDL_internal.h" 31 #ifndef XUSER_MAX_COUNT 32 #define XUSER_MAX_COUNT 4 34 #ifndef XUSER_INDEX_ANY 35 #define XUSER_INDEX_ANY 0x000000FF 37 #ifndef XINPUT_CAPS_FFB_SUPPORTED 38 #define XINPUT_CAPS_FFB_SUPPORTED 0x0001 41 #ifndef XINPUT_DEVSUBTYPE_UNKNOWN 42 #define XINPUT_DEVSUBTYPE_UNKNOWN 0x00 44 #ifndef XINPUT_DEVSUBTYPE_GAMEPAD 45 #define XINPUT_DEVSUBTYPE_GAMEPAD 0x01 47 #ifndef XINPUT_DEVSUBTYPE_WHEEL 48 #define XINPUT_DEVSUBTYPE_WHEEL 0x02 50 #ifndef XINPUT_DEVSUBTYPE_ARCADE_STICK 51 #define XINPUT_DEVSUBTYPE_ARCADE_STICK 0x03 53 #ifndef XINPUT_DEVSUBTYPE_FLIGHT_STICK 54 #define XINPUT_DEVSUBTYPE_FLIGHT_STICK 0x04 56 #ifndef XINPUT_DEVSUBTYPE_DANCE_PAD 57 #define XINPUT_DEVSUBTYPE_DANCE_PAD 0x05 59 #ifndef XINPUT_DEVSUBTYPE_GUITAR 60 #define XINPUT_DEVSUBTYPE_GUITAR 0x06 62 #ifndef XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE 63 #define XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE 0x07 65 #ifndef XINPUT_DEVSUBTYPE_DRUM_KIT 66 #define XINPUT_DEVSUBTYPE_DRUM_KIT 0x08 68 #ifndef XINPUT_DEVSUBTYPE_GUITAR_BASS 69 #define XINPUT_DEVSUBTYPE_GUITAR_BASS 0x0B 71 #ifndef XINPUT_DEVSUBTYPE_ARCADE_PAD 72 #define XINPUT_DEVSUBTYPE_ARCADE_PAD 0x13 75 #ifndef XINPUT_GAMEPAD_GUIDE 76 #define XINPUT_GAMEPAD_GUIDE 0x0400 79 #ifndef BATTERY_DEVTYPE_GAMEPAD 80 #define BATTERY_DEVTYPE_GAMEPAD 0x00 82 #ifndef BATTERY_TYPE_WIRED 83 #define BATTERY_TYPE_WIRED 0x01 86 #ifndef BATTERY_TYPE_UNKNOWN 87 #define BATTERY_TYPE_UNKNOWN 0xFF 89 #ifndef BATTERY_LEVEL_EMPTY 90 #define BATTERY_LEVEL_EMPTY 0x00 92 #ifndef BATTERY_LEVEL_LOW 93 #define BATTERY_LEVEL_LOW 0x01 95 #ifndef BATTERY_LEVEL_MEDIUM 96 #define BATTERY_LEVEL_MEDIUM 0x02 98 #ifndef BATTERY_LEVEL_FULL 99 #define BATTERY_LEVEL_FULL 0x03 104 #ifndef HAVE_XINPUT_GAMEPAD_EX 114 DWORD dwPaddingReserved;
118 #ifndef HAVE_XINPUT_STATE_EX 121 DWORD dwPacketNumber;
122 XINPUT_GAMEPAD_EX Gamepad;
130 } XINPUT_BATTERY_INFORMATION_EX;
133 typedef DWORD (WINAPI *XInputGetState_t)
136 XINPUT_STATE_EX* pState
139 typedef DWORD (WINAPI *XInputSetState_t)
142 XINPUT_VIBRATION* pVibration
145 typedef DWORD (WINAPI *XInputGetCapabilities_t)
149 XINPUT_CAPABILITIES* pCapabilities
152 typedef DWORD (WINAPI *XInputGetBatteryInformation_t)
156 XINPUT_BATTERY_INFORMATION_EX *pBatteryInformation
159 extern int WIN_LoadXInputDLL(
void);
160 extern void WIN_UnloadXInputDLL(
void);
162 extern XInputGetState_t SDL_XInputGetState;
163 extern XInputSetState_t SDL_XInputSetState;
164 extern XInputGetCapabilities_t SDL_XInputGetCapabilities;
165 extern XInputGetBatteryInformation_t SDL_XInputGetBatteryInformation;
166 extern DWORD SDL_XInputVersion;
168 #define XINPUTGETSTATE SDL_XInputGetState 169 #define XINPUTSETSTATE SDL_XInputSetState 170 #define XINPUTGETCAPABILITIES SDL_XInputGetCapabilities 171 #define XINPUTGETBATTERYINFORMATION SDL_XInputGetBatteryInformation