1 // Copyright © 2015, Peter Atashian
2 // Licensed under the MIT License <LICENSE.md>
3 //! XInput procedure declarations, constant definitions and macros
4 pub const XINPUT_DEVTYPE_GAMEPAD
: ::BYTE
= 0x01;
5 pub const XINPUT_DEVSUBTYPE_GAMEPAD
: ::BYTE
= 0x01;
6 pub const XINPUT_DEVSUBTYPE_WHEEL
: ::BYTE
= 0x02;
7 pub const XINPUT_DEVSUBTYPE_ARCADE_STICK
: ::BYTE
= 0x03;
8 pub const XINPUT_DEVSUBTYPE_FLIGHT_SICK
: ::BYTE
= 0x04;
9 pub const XINPUT_DEVSUBTYPE_DANCE_PAD
: ::BYTE
= 0x05;
10 pub const XINPUT_DEVSUBTYPE_GUITAR
: ::BYTE
= 0x06;
11 pub const XINPUT_DEVSUBTYPE_DRUM_KIT
: ::BYTE
= 0x08;
12 pub const XINPUT_CAPS_VOICE_SUPPORTED
: ::WORD
= 0x0004;
13 pub const XINPUT_GAMEPAD_DPAD_UP
: ::WORD
= 0x0001;
14 pub const XINPUT_GAMEPAD_DPAD_DOWN
: ::WORD
= 0x0002;
15 pub const XINPUT_GAMEPAD_DPAD_LEFT
: ::WORD
= 0x0004;
16 pub const XINPUT_GAMEPAD_DPAD_RIGHT
: ::WORD
= 0x0008;
17 pub const XINPUT_GAMEPAD_START
: ::WORD
= 0x0010;
18 pub const XINPUT_GAMEPAD_BACK
: ::WORD
= 0x0020;
19 pub const XINPUT_GAMEPAD_LEFT_THUMB
: ::WORD
= 0x0040;
20 pub const XINPUT_GAMEPAD_RIGHT_THUMB
: ::WORD
= 0x0080;
21 pub const XINPUT_GAMEPAD_LEFT_SHOULDER
: ::WORD
= 0x0100;
22 pub const XINPUT_GAMEPAD_RIGHT_SHOULDER
: ::WORD
= 0x0200;
23 pub const XINPUT_GAMEPAD_A
: ::WORD
= 0x1000;
24 pub const XINPUT_GAMEPAD_B
: ::WORD
= 0x2000;
25 pub const XINPUT_GAMEPAD_X
: ::WORD
= 0x4000;
26 pub const XINPUT_GAMEPAD_Y
: ::WORD
= 0x8000;
27 pub const XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE
: ::SHORT
= 7849;
28 pub const XINPUT_GAMEPAD_RIGHT_THUMB_DEADZONE
: ::SHORT
= 8689;
29 pub const XINPUT_GAMEPAD_TRIGGER_THRESHOLD
: ::BYTE
= 30;
30 pub const XINPUT_FLAG_GAMEPAD
: ::DWORD
= 0x00000001;
31 pub const BATTERY_DEVTYPE_GAMEPAD
: ::BYTE
= 0x00;
32 pub const BATTERY_DEVTYPE_HEADSET
: ::BYTE
= 0x01;
33 pub const BATTERY_TYPE_DISCONNECTED
: ::BYTE
= 0x00;
34 pub const BATTERY_TYPE_WIRED
: ::BYTE
= 0x01;
35 pub const BATTERY_TYPE_ALKALINE
: ::BYTE
= 0x02;
36 pub const BATTERY_TYPE_NIMH
: ::BYTE
= 0x03;
37 pub const BATTERY_TYPE_UNKNOWN
: ::BYTE
= 0xFF;
38 pub const BATTERY_LEVEL_EMPTY
: ::BYTE
= 0x00;
39 pub const BATTERY_LEVEL_LOW
: ::BYTE
= 0x01;
40 pub const BATTERY_LEVEL_MEDIUM
: ::BYTE
= 0x02;
41 pub const BATTERY_LEVEL_FULL
: ::BYTE
= 0x03;
42 pub const XUSER_MAX_COUNT
: ::DWORD
= 4;
43 pub const XUSER_INDEX_ANY
: ::DWORD
= 0x000000FF;
44 pub const VK_PAD_A
: ::WORD
= 0x5800;
45 pub const VK_PAD_B
: ::WORD
= 0x5801;
46 pub const VK_PAD_X
: ::WORD
= 0x5802;
47 pub const VK_PAD_Y
: ::WORD
= 0x5803;
48 pub const VK_PAD_RSHOULDER
: ::WORD
= 0x5804;
49 pub const VK_PAD_LSHOULDER
: ::WORD
= 0x5805;
50 pub const VK_PAD_LTRIGGER
: ::WORD
= 0x5806;
51 pub const VK_PAD_RTRIGGER
: ::WORD
= 0x5807;
52 pub const VK_PAD_DPAD_UP
: ::WORD
= 0x5810;
53 pub const VK_PAD_DPAD_DOWN
: ::WORD
= 0x5811;
54 pub const VK_PAD_DPAD_LEFT
: ::WORD
= 0x5812;
55 pub const VK_PAD_DPAD_RIGHT
: ::WORD
= 0x5813;
56 pub const VK_PAD_START
: ::WORD
= 0x5814;
57 pub const VK_PAD_BACK
: ::WORD
= 0x5815;
58 pub const VK_PAD_LTHUMB_PRESS
: ::WORD
= 0x5816;
59 pub const VK_PAD_RTHUMB_PRESS
: ::WORD
= 0x5817;
60 pub const VK_PAD_LTHUMB_UP
: ::WORD
= 0x5820;
61 pub const VK_PAD_LTHUMB_DOWN
: ::WORD
= 0x5821;
62 pub const VK_PAD_LTHUMB_RIGHT
: ::WORD
= 0x5822;
63 pub const VK_PAD_LTHUMB_LEFT
: ::WORD
= 0x5823;
64 pub const VK_PAD_LTHUMB_UPLEFT
: ::WORD
= 0x5824;
65 pub const VK_PAD_LTHUMB_UPRIGHT
: ::WORD
= 0x5825;
66 pub const VK_PAD_LTHUMB_DOWNRIGHT
: ::WORD
= 0x5826;
67 pub const VK_PAD_LTHUMB_DOWNLEFT
: ::WORD
= 0x5827;
68 pub const VK_PAD_RTHUMB_UP
: ::WORD
= 0x5830;
69 pub const VK_PAD_RTHUMB_DOWN
: ::WORD
= 0x5831;
70 pub const VK_PAD_RTHUMB_RIGHT
: ::WORD
= 0x5832;
71 pub const VK_PAD_RTHUMB_LEFT
: ::WORD
= 0x5833;
72 pub const VK_PAD_RTHUMB_UPLEFT
: ::WORD
= 0x5834;
73 pub const VK_PAD_RTHUMB_UPRIGHT
: ::WORD
= 0x5835;
74 pub const VK_PAD_RTHUMB_DOWNRIGHT
: ::WORD
= 0x5836;
75 pub const VK_PAD_RTHUMB_DOWNLEFT
: ::WORD
= 0x5837;
76 pub const XINPUT_KEYSTROKE_KEYDOWN
: ::WORD
= 0x0001;
77 pub const XINPUT_KEYSTROKE_KEYUP
: ::WORD
= 0x0002;
78 pub const XINPUT_KEYSTROKE_REPEAT
: ::WORD
= 0x0004;
79 STRUCT
!{struct XINPUT_GAMEPAD
{
82 bRightTrigger
: ::BYTE
,
88 pub type PXINPUT_GAMEPAD
= *mut XINPUT_GAMEPAD
;
89 STRUCT
!{struct XINPUT_STATE
{
90 dwPacketNumber
: ::DWORD
,
91 Gamepad
: ::XINPUT_GAMEPAD
,
93 pub type PXINPUT_STATE
= *mut XINPUT_STATE
;
94 STRUCT
!{struct XINPUT_VIBRATION
{
95 wLeftMotorSpeed
: ::WORD
,
96 wRightMotorSpeed
: ::WORD
,
98 pub type PXINPUT_VIBRATION
= *mut XINPUT_VIBRATION
;
99 STRUCT
!{struct XINPUT_CAPABILITIES
{
103 Gamepad
: ::XINPUT_GAMEPAD
,
104 Vibration
: ::XINPUT_VIBRATION
,
106 pub type PXINPUT_CAPABILITIES
= *mut XINPUT_CAPABILITIES
;
107 STRUCT
!{struct XINPUT_BATTERY_INFORMATION
{
109 BatteryLevel
: ::BYTE
,
111 pub type PXINPUT_BATTERY_INFORMATION
= *mut XINPUT_BATTERY_INFORMATION
;
112 STRUCT
!{struct XINPUT_KEYSTROKE
{
118 pub type PXINPUT_KEYSTROKE
= *mut XINPUT_KEYSTROKE
;