Expand description
[docs.microsoft.com] APIs for Xbox 360 style controllers
Enumerations
C++ | Rust |
---|---|
BATTERY_DEVTYPE_* | BatteryDevType ::* |
BATTERY_LEVEL_* | BatteryLevel ::* |
BATTERY_TYPE_* | BatteryType ::* |
XINPUT_DEVSUBTYPE_* | DevSubType ::* |
XINPUT_DEVTYPE_* | DevType ::* |
XUSER_* | User ::* |
VK_* | VK ::* |
Flags
C++ | Rust |
---|---|
XINPUT_GAMEPAD_* | Buttons ::* |
XINPUT_CAPS_* | Caps ::* |
XINPUT_FLAG_* | Flag ::* |
Functions
C++ | Rust |
---|---|
XInputEnable | enable |
XInputGetAudioDeviceIds | get_audio_device_ids |
XInputGetBatteryInformation | get_battery_information |
XInputGetCapabilities | get_capabilities |
XInputGetDSoundAudioDeviceGuids ❌ | get_dsound_audio_device_guids |
XInputGetKeystroke | get_keystroke |
XInputGetState | get_state |
XInputGetStateEx ⚠️ 1.3 | get_state_ex |
XInputSetState | set_state |
XInputWaitForGuideButton ⚠️ 1.3 | TODO? |
XInputCancelGuideButtonWait ⚠️ 1.3 | TODO? |
XInputPowerOffController ⚠️ 1.3 | TODO? |
XInputGetBaseBusInformation ⚠️ 1.4 | TODO? |
XInputGetCapabilitiesEx ⚠️ 1.4 | TODO? |
Legend | Desc |
---|---|
❌ | Deprecated |
⚠️ 1.3 | Undocumented XInput 1.3+ function exported by ordinal only |
⚠️ 1.4 | Undocumented XInput 1.4+ function exported by ordinal only |
Structures
Alternatives
[docs.microsoft.com] DirectInput
- ✔️ Supports joysticks with many more buttons and axises than XInput.
- ✔️ Leverages Windows’s built in support for configuring idle positions, deadzones.
- ⚠️ Older, “deprecated” in favor of XInput.
- ❌ Xbox 360 controllers map both triggers to a single axis in DirectInput.
- Comparison of XInput and DirectInput features discusses how to use a hybrid approach of XInput for 360 controllers and DirectInput for non-XInput devices
[docs.microsoft.com] UWP
- ✔️ Supports Xbox One trigger rumble (XInput only supports base controller rumble)
- ⚠️ Can’t recieve input through UWP when the app/window is not active (useful for dev cruft.)
- ⚠️ No Windows 7 support?
Structs
[docs.microsoft.com] Audio device ids retrieved with get_audio_device_ids
[docs.microsoft.com] BATTERY_DEVTYPE_*
[docs.microsoft.com] XINPUT_BATTERY_INFORMATION
[docs.microsoft.com] BATTERY_LEVEL_*
[docs.microsoft.com] BATTERY_TYPE_*
[docs.microsoft.com] XINPUT_GAMEPAD_*
[docs.microsoft.com] XINPUT_CAPABILITIES
[docs.microsoft.com] XINPUT_CAPS_*
[docs.microsoft.com] DirectSound audio device Guids retrieved with get_dsound_audio_device_guids
[docs.microsoft.com] XINPUT_DEVSUBTYPE_*
[docs.microsoft.com] XINPUT_DEVTYPE_*
[docs.microsoft.com] XINPUT_FLAG_*
[docs.microsoft.com] XINPUT_GAMEPAD
[docs.microsoft.com] XINPUT_KEYSTROKE
[docs.microsoft.com] XINPUT_KEYSTROKE_*
[docs.microsoft.com] XINPUT_STATE
[docs.microsoft.com]
XUSER_*
[docs.microsoft.com] VK_* values specific to Xbox 360 controllers
[docs.microsoft.com] XINPUT_VIBRATION
Functions
[docs.microsoft.com] XInputEnable
[docs.microsoft.com] XInputGetAudioDeviceIds
[docs.microsoft.com] XInputGetBatteryInformation
[docs.microsoft.com] XInputGetCapabilities
[docs.microsoft.com] XInputGetDSoundAudioDeviceGuids
[docs.microsoft.com] XInputGetKeystroke
[docs.microsoft.com] XInputGetState
[docs.microsoft.com] XInputGetStateEx
[docs.microsoft.com] XInputSetState