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