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
112 DWORD dwPaddingReserved;
117 DWORD dwPacketNumber;
118 XINPUT_GAMEPAD_EX Gamepad;
125 } XINPUT_BATTERY_INFORMATION_EX;
128 typedef DWORD (WINAPI *XInputGetState_t)
131 XINPUT_STATE_EX* pState
134 typedef DWORD (WINAPI *XInputSetState_t)
137 XINPUT_VIBRATION* pVibration
140 typedef DWORD (WINAPI *XInputGetCapabilities_t)
144 XINPUT_CAPABILITIES* pCapabilities
147 typedef DWORD (WINAPI *XInputGetBatteryInformation_t)
151 XINPUT_BATTERY_INFORMATION_EX *pBatteryInformation
154 extern int WIN_LoadXInputDLL(
void);
155 extern void WIN_UnloadXInputDLL(
void);
157 extern XInputGetState_t SDL_XInputGetState;
158 extern XInputSetState_t SDL_XInputSetState;
159 extern XInputGetCapabilities_t SDL_XInputGetCapabilities;
160 extern XInputGetBatteryInformation_t SDL_XInputGetBatteryInformation;
161 extern DWORD SDL_XInputVersion;
163 #define XINPUTGETSTATE SDL_XInputGetState
164 #define XINPUTSETSTATE SDL_XInputSetState
165 #define XINPUTGETCAPABILITIES SDL_XInputGetCapabilities
166 #define XINPUTGETBATTERYINFORMATION SDL_XInputGetBatteryInformation