----------------------------------------
-- Microsoft DirectX Ada binding lib --
-- File : DInput.ads --
-- Translator:Dongfeng.Gu,2018/11/16 --
-- Mail: [email protected] --
-- Progress:100% --
----------------------------------------
with win32; use win32;
with win32.rpcdce;
with Ada.Characters.Handling;
package XInput is
type LPGUID is access all win32.rpcdce.GUID;
XINPUT_DLL_A : constant String:= "xinput1_3.dll"&character'first;
XINPUT_DLL_W : constant WIDE_STRING:= Ada.Characters.Handling.TO_WIDE_STRING("xinput1_3.dll"&character'first);
XINPUT_DLL : constant String:= XINPUT_DLL_A;
XINPUT_DEVTYPE_GAMEPAD : constant := 16#01#;
XINPUT_DEVSUBTYPE_GAMEPAD : constant := 16#01#;
XINPUT_DEVSUBTYPE_WHEEL : constant := 16#02#;
XINPUT_DEVSUBTYPE_ARCADE_STICK : constant := 16#03#;
XINPUT_DEVSUBTYPE_FLIGHT_SICK : constant := 16#04#;
XINPUT_DEVSUBTYPE_DANCE_PAD : constant := 16#05#;
XINPUT_DEVSUBTYPE_GUITAR : constant := 16#06#;
XINPUT_DEVSUBTYPE_DRUM_KIT : constant := 16#08#;
XINPUT_CAPS_VOICE_SUPPORTED : constant := 16#0004#;
XINPUT_GAMEPAD_DPAD_UP : constant := 16#0001#;
XINPUT_GAMEPAD_DPAD_DOWN : constant := 16#0002#;
XINPUT_GAMEPAD_DPAD_LEFT : constant := 16#0004#;
XINPUT_GAMEPAD_DPAD_RIGHT : constant := 16#0008#;
XINPUT_GAMEPAD_START : constant := 16#0010#;
XINPUT_GAMEPAD_BACK : constant := 16#0020#;
XINPUT_GAMEPAD_LEFT_THUMB : constant := 16#0040#;
XINPUT_GAMEPAD_RIGHT_THUMB : constant := 16#0080#;
XINPUT_GAMEPAD_LEFT_SHOULDER : constant := 16#0100#;
XINPUT_GAMEPAD_RIGHT_SHOULDER : constant := 16#0200#;
XINPUT_GAMEPAD_A : constant := 16#1000#;
XINPUT_GAMEPAD_B : constant := 16#2000#;
XINPUT_GAMEPADtagX : constant := 16#4000#;
XINPUT_GAMEPAD_Y : constant := 16#8000#;
XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE : constant := 7849;
XINPUT_GAMEPAD_RIGHT_THUMB_DEADZONE : constant := 8689;
XINPUT_GAMEPAD_TRIGGER_THRESHOLD : constant := 30;
XINPUT_FLAG_GAMEPAD : constant := 16#00000001#;
BATTERY_DEVTYPE_GAMEPAD : constant := 16#00#;
BATTERY_DEVTYPE_HEADSET : constant := 16#01#;
BATTERY_TYPE_DISCONNECTED : constant := 16#00#; -- This device is not connected#;
BATTERY_TYPE_WIRED : constant := 16#01#; -- Wired device, no battery#;
BATTERY_TYPE_ALKALINE : constant := 16#02#; -- Alkaline battery source#;
BATTERY_TYPE_NIMH : constant := 16#03#; -- Nickel Metal Hydride battery source#;
BATTERY_TYPE_UNKNOWN : constant := 16#FF#; -- Cannot determine the battery type#;
BATTERY_LEVEL_EMPTY : constant := 16#00#;
BATTERY_LEVEL_LOW : constant := 16#01#;
BATTERY_LEVEL_MEDIUM : constant := 16#02#;
BATTERY_LEVEL_FULL : constant := 16#03#;
XUSER_MAX_COUNT : constant := 4;
XUSER_INDEX_ANY : constant := 16#000000FF#;
VK_PAD_A : constant := 16#5800#;
VK_PAD_B : constant := 16#5801#;
VK_PADtagX : constant := 16#5802#;
VK_PAD_Y : constant := 16#5803#;
VK_PAD_RSHOULDER : constant := 16#5804#;
VK_PAD_LSHOULDER : constant := 16#5805#;
VK_PAD_LTRIGGER : constant := 16#5806#;
VK_PAD_RTRIGGER : constant := 16#5807#;
VK_PAD_DPAD_UP : constant := 16#5810#;
VK_PAD_DPAD_DOWN : constant := 16#5811#;
VK_PAD_DPAD_LEFT : constant := 16#5812#;
VK_PAD_DPAD_RIGHT : constant := 16#5813#;
VK_PAD_START : constant := 16#5814#;
VK_PAD_BACK : constant := 16#5815#;
VK_PAD_LTHUMB_PRESS : constant := 16#5816#;
VK_PAD_RTHUMB_PRESS : constant := 16#5817#;
VK_PAD_LTHUMB_UP : constant := 16#5820#;
VK_PAD_LTHUMB_DOWN : constant := 16#5821#;
VK_PAD_LTHUMB_RIGHT : constant := 16#5822#;
VK_PAD_LTHUMB_LEFT : constant := 16#5823#;
VK_PAD_LTHUMB_UPLEFT : constant := 16#5824#;
VK_PAD_LTHUMB_UPRIGHT : constant := 16#5825#;
VK_PAD_LTHUMB_DOWNRIGHT : constant := 16#5826#;
VK_PAD_LTHUMB_DOWNLEFT : constant := 16#5827#;
VK_PAD_RTHUMB_UP : constant := 16#5830#;
VK_PAD_RTHUMB_DOWN : constant := 16#5831#;
VK_PAD_RTHUMB_RIGHT : constant := 16#5832#;
VK_PAD_RTHUMB_LEFT : constant := 16#5833#;
VK_PAD_RTHUMB_UPLEFT : constant := 16#5834#;
VK_PAD_RTHUMB_UPRIGHT : constant := 16#5835#;
VK_PAD_RTHUMB_DOWNRIGHT : constant := 16#5836#;
VK_PAD_RTHUMB_DOWNLEFT : constant := 16#5837#;
XINPUT_KEYSTROKE_KEYDOWN : constant := 16#0001#;
XINPUT_KEYSTROKE_KEYUP : constant := 16#0002#;
XINPUT_KEYSTROKE_REPEAT : constant := 16#0004#;
type tagXINPUT_GAMEPAD is record
wButtons: WORD;
bLeftTrigger: BYTE;
bRightTrigger: BYTE;
sThumbLX: SHORT;
sThumbLY: SHORT;
sThumbRX: SHORT;
sThumbRY: SHORT;
end record;
subtype XINPUT_GAMEPAD is tagXINPUT_GAMEPAD;
type PXINPUT_GAMEPAD is access all tagXINPUT_GAMEPAD;
type tagXINPUT_STATE is record
dwPacketNumber: DWORD;
Gamepad: XINPUT_GAMEPAD;
end record;
subtype XINPUT_STATE is tagXINPUT_STATE;
type PXINPUT_STATE is access all tagXINPUT_STATE;
subtype LPXINPUT_STATE is PXINPUT_STATE;
type tagXINPUT_VIBRATION is record
wLeftMotorSpeed: WORD;
wRightMotorSpeed: WORD;
end record;
subtype XINPUT_VIBRATION is tagXINPUT_VIBRATION;
type PXINPUT_VIBRATION is access all tagXINPUT_VIBRATION;
subtype LPXINPUT_VIBRATION is PXINPUT_VIBRATION;
type tagXINPUT_CAPABILITIES is record
Typ: BYTE;
SubTyp: BYTE;
Flags: WORD;
Gamepad: XINPUT_GAMEPAD;
Vibration: XINPUT_VIBRATION;
end record;
subtype XINPUT_CAPABILITIES is tagXINPUT_CAPABILITIES;
type PXINPUT_CAPABILITIES is access all tagXINPUT_CAPABILITIES;
subtype LPXINPUT_CAPABILITIES is PXINPUT_CAPABILITIES;
type tagXINPUT_BATTERY_INFORMATION is record
BatteryType: BYTE;
BatteryLevel: BYTE;
end record;
subtype XINPUT_BATTERY_INFORMATION is tagXINPUT_BATTERY_INFORMATION;
type PXINPUT_BATTERY_INFORMATION is access all tagXINPUT_BATTERY_INFORMATION;
subtype LPXINPUT_BATTERY_INFORMATION is PXINPUT_BATTERY_INFORMATION;
type tagXINPUT_KEYSTROKE is record
VirtualKey: WORD;
Unicode: WCHAR;
Flags: WORD;
UserIndex: BYTE;
HidCode: BYTE;
end record;
subtype XINPUT_KEYSTROKE is tagXINPUT_KEYSTROKE;
type PXINPUT_KEYSTROKE is access all tagXINPUT_KEYSTROKE;
subtype LPXINPUT_KEYSTROKE is PXINPUT_KEYSTROKE;
function XInputGetState(dwUserIndex:DWORD;pState:LPXINPUT_STATE) return DWORD with Import,Convention=>stdcall,external_name=>"XInputGetState";
function XInputSetState(dwUserIndex:DWORD;pVibration:LPXINPUT_VIBRATION) return DWORD with Import,Convention=>stdcall,external_name=>"XInputSetState";
function XInputGetCapabilities(dwUserIndex:DWORD;dwFlags:DWORD;pCapabilities:LPXINPUT_CAPABILITIES) return DWORD with Import,Convention=>stdcall,external_name=>"XInputGetCapabilities";
procedure XInputEnable(enable:BOOL) with Import,Convention=>stdcall,external_name=>"XInputEnable";
function XInputGetDSoundAudioDeviceGuids(dwUserIndex:DWORD;pDSoundRenderGuid:LPGUID;pDSoundCaptureGuid:LPGUID) return DWORD with Import,Convention=>stdcall,external_name=>"XInputGetDSoundAudioDeviceGuids";
function XInputGetBatteryInformation(dwUserIndex:DWORD;devType:BYTE;pBatteryInformation:LPXINPUT_BATTERY_INFORMATION) return DWORD with Import,Convention=>stdcall,external_name=>"XInputGetBatteryInformation";
function XInputGetKeystroke(dwUserIndex:DWORD;dwReserved:DWORD;pKeystroke:PXINPUT_KEYSTROKE) return DWORD with Import,Convention=>stdcall,external_name=>"XInputGetKeystroke";
--
-- THE END.
--
end XInput;
Ada计算机图形DirectX之XInput
猜你喜欢
转载自blog.csdn.net/adacore/article/details/84135384
今日推荐
周排行