XINPUT and Controller Subtypes
A table of controller subtypes available in XInput.
Subtype | Value | Meaning |
---|---|---|
XINPUT_DEVSUBTYPE_UNKNOWN | 0x00 | Unknown. The controller type is unknown. |
XINPUT_DEVSUBTYPE_GAMEPAD | 0x01 | Gamepad controller. Includes Left and Right Sticks, Left and Right Triggers, Directional Pad, and all standard buttons (A, B, X, Y, START, BACK, LB, RB, LSB, RSB). |
XINPUT_DEVSUBTYPE_WHEEL | 0x02 | Racing wheel controller. Left Stick X reports the wheel rotation, Right Trigger is the acceleration pedal, and Left Trigger is the brake pedal. Includes Directional Pad and most standard buttons (A, B, X, Y, START, BACK, LB, RB). LSB and RSB are optional. |
XINPUT_DEVSUBTYPE_ARCADE_STICK | 0x03 | Arcade stick controller. Includes a Digital Stick that reports as a DPAD (up, down, left, right), and most standard buttons (A, B, X, Y, START, BACK). The Left and Right Triggers are implemented as digital buttons and report either 0 or 0xFF. LB, LSB, RB, and RSB are optional. |
XINPUT_DEVSUBTYPE_FLIGHT_STICK | 0x04 | Flight stick controller. Includes a pitch and roll stick that reports as the Left Stick, a POV Hat which reports as the Right Stick, a rudder (handle twist or rocker) that reports as Left Trigger, and a throttle control as the Right Trigger. Includes support for a primary weapon (A), secondary weapon (B), and other standard buttons (X, Y, START, BACK). LB, LSB, RB, and RSB are optional. |
XINPUT_DEVSUBTYPE_DANCE_PAD | 0x05 | Dance pad controller. Includes the Directional Pad and standard buttons (A, B, X, Y) on the pad, plus BACK and START. |
XINPUT_DEVSUBTYPE_GUITAR | 0x06 | Guitar controller. The strum bar maps to DPAD (up and down), and the frets are assigned to A (green), B (red), Y (yellow), X (blue), and LB (orange). Right Stick Y is associated with a vertical orientation sensor; Right Stick X is the whammy bar. Includes support for BACK, START, DPAD (left, right). Left Trigger (pickup selector), Right Trigger, RB, LSB (fret modifier), RSB are optional. |
XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE | 0x07 | Alternate guitar controller. Supports a larger range of movement for the vertical orientation sensor. |
XINPUT_DEVSUBTYPE_DRUM_KIT | 0x08 | Drum controller. The drum pads are assigned to buttons: A for green (Floor Tom), B for red (Snare Drum), X for blue (Low Tom), Y for yellow (High Tom), and LB for the pedal (Bass Drum). Includes Directional-Pad, BACK, and START. RB, LSB, and RSB are optional. |
XINPUT_DEVSUBTYPE_GUITAR_BASS | 0x0B | Bass guitar controller. Identical to Guitar, with the distinct subtype to simplify setup. |
XINPUT_DEVSUBTYPE_ARCADE_PAD | 0x13 | Arcade pad controller. Includes Directional Pad and most standard buttons (A, B, X, Y, START, BACK, LB, RB). The Left and Right Triggers are implemented as digital buttons and report either 0 or 0xFF. Left Stick, Right Stick, LSB, and RSB are optional. |
Note
The legacy version of XINPUT on Windows Vista (XInput 9.1.0) always returns a fixed subtype of XINPUT_DEVSUBTYPE_GAMEPAD, regardless of attached device.