Zařízení DirectInput a XUSB
Ovladač pro XUSB ve Windows implementuje rozhraní režimu jádra pro XINPUT DLL. Pro zajištění dobrého prostředí pro starší verze názvů, které používají rozhraní API DirectInput s běžným zařízením kontroleru, ovladač také exportuje rozhraní třídy HID (Human Interface Device), které je vyzvednuto rozhraním DirectInput. Zvolili jsme mapování XUSB na HID na základě typického chování v sadě herních aplikací pro původní verzi XINPUT a aktualizovali jsme mapování pro novější podtypy. Toto téma popisuje mapování.
Zařízení s lidským rozhraním (HID)
Standard HID je standard z výboru Pro univerzální sériovou sběrnici (USB), který původně navrhl Microsoft, aby zobecněl protokoly pro vstupní zařízení. Skládá se z jazyka popisu bajtového kódu a může vyjádřit gamepady, myši, joysticky, omezení a ovládání kormidla a ovladače s více osami. Vzhledem k tomu, že tento standard je tak zobecněný, může být obtížné psát software, který spotřebovává vstup z libovolných zařízení. Proto jsme pro rozhraní API pro DirectInput vyvinuli specifické dílčí mapování typů, abychom podpořili výrobu hardwaru, která podporuje prostřednictvím jejich ovladačů.
Důležitý
Ke vstupním zařízením HID můžete přistupovat také prostřednictvím rozhraní RawInput API a zpracovávat vstupní sestavy prostřednictvím rozhraní API nízké úrovně rozhraní HID, ale zpětná vazba k vibracím nebude fungovat stejně jako u DirectInput.
Mapování
Ovladač XUSB implementuje rozhraní třídy XUSB i rozhraní třídy HID pro zařízení, aby podporoval jak XINPUT, tak DirectInput využití. Toto mapování vychází z informací podtypu XUSB. Ovladač implementuje čtyři různé skupiny mapování.
Podtyp XUSB | Mapující |
---|---|
XINPUT_DEVSUBTYPE_GAMEPAD (podtyp 1) | Gamepad |
XINPUT_DEVSUBTYPE_WHEEL (podtyp 2) | Kolo |
XINPUT_DEVSUBTYPE_ARCADE_STICK (podtyp 3) | Arkádová stick / Arkádová podložka |
XINPUT_DEVSUBTYPE_FLIGHT_STICK (podtyp 4) | Flight Stick |
XINPUT_DEVSUBTYPE_DANCE_PAD (podtyp 5) | Výchozí hodnota pro jakýkoli nový podtyp |
XINPUT_DEVSUBTYPE_GUITAR (podtyp 6) | Kytara |
XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE (podtyp 7) | |
XINPUT_DEVSUBTYPE_DRUM_KIT (podtyp 8) | |
XINPUT_DEVSUBTYPE_GUITAR_BASS (podtyp 11) | |
XINPUT_DEVSUBTYPE_ARCADE_PAD (podtyp 19) |
Poznámka
Následující mapování HID jsou statická. To znamená, že i když sestava schopností zařízení indikuje, že konkrétní tlačítko nebo osa nejsou podporované, mapování ho bude i nadále obsahovat, ale vždy hlásí vypnutou hodnotu stavu nebo středu.
Gamepad
Toto je výchozí mapování a je navržené kolem standardního herního panelu a je vystaveno jako Gamepad typ použití HID.
Řízení | Název použití HID | Stránka Využití | ID využití |
---|---|---|---|
Levá hůl | X, Y | 0x01 | 0x30, 0x31 |
Pravá hůl | Rx, Ry | 0x01 | 0x33, 0x34 |
Levá aktivační událost + pravá aktivační událost | Z* | 0x01 | 0x32 |
D-Pad Nahoru, Dolů, Vlevo, Vpravo | Spínač klobouku | 0x01 | 0x39 |
A | Tlačítko 1 | 0x09 | 0x01 |
B | Tlačítko 2 | 0x09 | 0x02 |
X | Tlačítko 3 | 0x09 | 0x03 |
Y | Tlačítko 4 | 0x09 | 0x04 |
LB (levý náraz) | Tlačítko 5 | 0x09 | 0x05 |
RB (pravý náraz) | Tlačítko 6 | 0x09 | 0x06 |
HŘBET | Tlačítko 7 | 0x09 | 0x07 |
ZAČÍNAT | Tlačítko 8 | 0x09 | 0x08 |
LSB (levé tlačítko stiskem) | Tlačítko 9 | 0x09 | 0x09 |
RSB (tlačítko pravého přichytáku) | Tlačítko 10 | 0x09 | 0x0A |
Poznámka
(*): Toto se zkombinuje tak, aby Z vykazuje středové chování očekávané většinou názvů pro otáčení; to znamená, že není možné zobrazit všechny možné hodnoty kombinace triggerů prostřednictvím DirectInput a HID.
Arkádová stick / Arkádová podložka
Toto je mapování navržené kolem ovladače Arcade Stick a je vystaveno jako Gamepad typ použití HID. Arkádový Pad je velmi podobný Arkádové stick, ale v menším tvaru. Tyto návrhy nahrazují analogovou levou aktivační událost a aktivační událost vpravo digitálními tlačítky, která hlásí minimální a maximální hodnotu osy.
Řízení | Název použití HID | Stránka Využití | ID využití |
---|---|---|---|
D-Pad Nahoru, Dolů, Vlevo, Vpravo | Spínač klobouku | 0x01 | 0x39 |
A | Tlačítko 1 | 0x09 | 0x01 |
B | Tlačítko 2 | 0x09 | 0x02 |
X | Tlačítko 3 | 0x09 | 0x03 |
Y | Tlačítko 4 | 0x09 | 0x04 |
LB (levý náraz) | Tlačítko 5 | 0x09 | 0x05 |
RB (pravý náraz) | Tlačítko 6 | 0x09 | 0x06 |
HŘBET | Tlačítko 7 | 0x09 | 0x07 |
ZAČÍNAT | Tlačítko 8 | 0x09 | 0x08 |
Levá aktivační událost | Tlačítko 9 | 0x09 | 0x09 |
Pravá aktivační událost | Tlačítko 10 | 0x09 | 0x0A |
Tato zařízení mohou nebo nemusí podporovat další ovládací prvky, ale nejsou vystaveny mapováním HID: Left Stick, Right Stick, LSB (tlačítko vlevo) a RSB (tlačítko pravého tlačítka).
Kolo
Toto mapování je navržené kolem závodního kola a je vystaveno jako typ použití Gamepad HID.
Řízení | Název použití HID | Stránka Využití | ID využití |
---|---|---|---|
Kolečko (levá hůl X) | X | 0x01 | 0x30 |
Pedál akcelerátoru (pravý trigger) + brzdový pedál (levý trigger) | Z* | 0x01 | 0x32 |
D-Pad Nahoru, Dolů, Vlevo, Vpravo | Spínač klobouku | 0x01 | 0x39 |
A | Tlačítko 1 | 0x09 | 0x01 |
B | Tlačítko 2 | 0x09 | 0x02 |
X | Tlačítko 3 | 0x09 | 0x03 |
Y | Tlačítko 4 | 0x09 | 0x04 |
LB (levý náraz) | Tlačítko 5 | 0x09 | 0x05 |
RB (pravý náraz) | Tlačítko 6 | 0x09 | 0x06 |
LSB (levé tlačítko stiskem) | Tlačítko 7 | 0x09 | 0x07 |
RSB (tlačítko pravého přichytáku) | Tlačítko 8 | 0x09 | 0x08 |
HŘBET | Tlačítko 9 | 0x09 | 0x09 |
ZAČÍNAT | Tlačítko 10 | 0x09 | 0x0A |
Poznámka
(*): Toto se zkombinuje tak, aby Z vykazuje středové chování očekávané většinou názvů ovládacích prvků brzdy a akcelerátoru; to znamená, že není možné vidět všechny možné hodnoty kombinace pedálů prostřednictvím DirectInput.
Flight Stick
Toto mapování je navrženo kolem letové hůlky a je vystaveno jako Joystick typ použití HID.
Řízení | Název využití | Stránka Využití | ID využití |
---|---|---|---|
Flight Stick (Levá hůl) | X, Y | 0x01 | 0x30, 0x31 |
POV Hat (pravý hůl) | Rx, Ry | 0x01 | 0x33, 0x34 |
Omezení (aktivační událost vpravo) | Z | 0x01 | 0x32 |
Kormidlo (levý trigger) | Rz | 0x01 | 0x35 |
D-Pad Nahoru, Dolů, Vlevo, Vpravo | Spínač klobouku | 0x01 | 0x39 |
Primární zbraň (A) | Tlačítko 1 | 0x09 | 0x01 |
Sekundární zbraň (B) | Tlačítko 2 | 0x09 | 0x02 |
X | Tlačítko 3 | 0x09 | 0x03 |
Y | Tlačítko 4 | 0x09 | 0x04 |
LB (levý náraz) | Tlačítko 5 | 0x09 | 0x05 |
RB (pravý náraz) | Tlačítko 6 | 0x09 | 0x06 |
HŘBET | Tlačítko 7 | 0x09 | 0x07 |
ZAČÍNAT | Tlačítko 8 | 0x09 | 0x08 |
LSB (levé tlačítko stiskem) | Tlačítko 9 | 0x09 | 0x09 |
RSB (tlačítko pravého přichytáku) | Tlačítko 10 | 0x09 | 0x0A |
Poznámka
Vychází z konečného návrhu Flight Stick. Vzhledem k tomu, že se liší od raných definic Flight Stick, mnoho zařízení má přepínač režimu, který podporuje starý a nový model. Toto mapování předpokládá nový model.