Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows üzerindeki XUSB sürücüsü, XINPUT DLL için çekirdek modu arabirimini uygular. Ortak denetleyici cihazıyla DirectInput API'sini kullanan eski başlıklar için iyi bir deneyim sağlamak için sürücü, DirectInput tarafından seçilen bir İnsan Arabirim Cihazı (HID) sınıf arabirimini de dışarı aktarır. Orijinal XINPUT sürümü için bir dizi oyun uygulamasındaki tipik davranışa göre XUSB'yi HID'ye eşlemeyi seçtik ve eşlemeyi daha yeni alt türleri için güncelleştirdik. Bu konuda eşleme açıklanmaktadır.
İnsan Arabirim Cihazı (HID)
HID standardı, ilk olarak Microsoft tarafından giriş cihazlarına yönelik protokolleri genelleştirmek üzere önerilen Evrensel Seri Veri Yolu (USB) komitesinin bir standardıdır. Bayt kodu açıklama dilinden oluşur ve oyun tuşlarını, fareleri, oyun çubuklarını, azaltma ve dümen kontrollerini ve çok eksenli denetleyicileri ifade edebilir. Bu standart çok genelleştirilmiş olduğundan, rastgele cihazlardan gelen girişleri kullanan yazılım yazmakta zorlanabilirsiniz. Bu nedenle, oyun odaklı DirectInput API'si için donanım üreticilerini sürücüleri aracılığıyla desteklemeye teşvik etmek için türlerin belirli bir alt eşlemesini geliştirdik.
- HID v1.11 için USB Cihaz Sınıfı Tanımı
Önemli
Hid giriş cihazlarına RawInput API üzerinden erişebilir ve düşük düzeyli HID API aracılığıyla giriş raporlarını işleyebilirsiniz, ancak titreşim geri bildirimi DirectInputile çalışmaz.
Eşleştirmeleri
XUSB sürücüsü, hem XINPUT hem de DirectInput kullanımını desteklemek üzere cihazlar için hem XUSB sınıf arabirimi hem de HID sınıf arabirimi uygular. Bu eşleme, XUSB alt türü bilgilerini temel alır. Sürücü dört ayrı eşleme grubu uygular.
| XUSB Alt Türü | Eşleme |
|---|---|
| XINPUT_DEVSUBTYPE_GAMEPAD (Alt Tür 1) | Gamepad |
| XINPUT_DEVSUBTYPE_WHEEL (Alt Tür 2) | Tekerlek |
| XINPUT_DEVSUBTYPE_ARCADE_STICK (Alt Tür 3) | Arcade Stick/Arcade Pad |
| XINPUT_DEVSUBTYPE_FLIGHT_STICK (Alt Tür 4) | Uçuş Çubuğu |
| XINPUT_DEVSUBTYPE_DANCE_PAD (Alt Tür 5) | Herhangi bir yeni alt tür için varsayılan |
| XINPUT_DEVSUBTYPE_GUITAR (Alt Tür 6) | Gitar |
| XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE (Alt Tür 7) | |
| XINPUT_DEVSUBTYPE_DRUM_KIT (Alt Tür 8) | |
| XINPUT_DEVSUBTYPE_GUITAR_BASS (Alt Tür 11) | |
| XINPUT_DEVSUBTYPE_ARCADE_PAD (Alt Tür 19) |
Not
Aşağıdaki HID eşlemeleri statiktir. Bu, cihaz özellikleri raporu belirli bir düğmenin veya eksenin desteklenmediğini belirtse bile eşlemenin bu düğmeyi içermeye devam edeceği ancak her zaman bir kapalı durum veya orta değeri bildireceği anlamına gelir.
Gamepad
Bu varsayılan eşlemedir ve standart bir oyun yüzeyi etrafında tasarlanmıştır ve Gamepad HID kullanım türü olarak kullanıma sunulur.
| Kontrol | HID Kullanım Adı | Kullanım Sayfası | Kullanım Kimliği |
|---|---|---|---|
| Sol Çubuk | X, Y | 0x01 | 0x30, 0x31 |
| Sağ Çubuk | Rx, Ry | 0x01 | 0x33, 0x34 |
| Sol Tetikleyici + Sağ Tetikleyici | Z* | 0x01 | 0x32 |
| D-Pad Yukarı, Aşağı, Sol, Sağ | Şapka Anahtarı | 0x01 | 0x39 |
| A | Düğme 1 | 0x09 | 0x01 |
| B | Düğme 2 | 0x09 | 0x02 |
| X | Düğme 3 | 0x09 | 0x03 |
| Y | Düğme 4 | 0x09 | 0x04 |
| LB (sol tampon) | Düğme 5 | 0x09 | 0x05 |
| RB (sağ tampon) | Düğme 6 | 0x09 | 0x06 |
| GERİ | Düğme 7 | 0x09 | 0x07 |
| BAŞLAMAK | Düğme 8 | 0x09 | 0x08 |
| LSB (sol çubuk düğmesi) | Düğme 9 | 0x09 | 0x09 |
| RSB (sağ çubuk düğmesi) | Düğme 10 | 0x09 | 0x0A |
Not
(*): Bu, Z'nin döndürme için çoğu başlık tarafından beklenen ortalama davranışını sergilemesi için birleştirilir; Bu, DirectInput ve HID aracılığıyla tüm olası tetikleyici birleşim değerlerinin görmenin mümkün olmadığı anlamına gelir.
Arcade Stick/Arcade Pad
Bu, Arcade Stick oyun kumandası etrafında tasarlanan haritadır ve Gamepad HID kullanım türü olarak kullanıma sunulur. Arcade Pad bir Arcade Stick'e çok benzer, ancak daha küçük bir form faktöründe. Bu tasarımlar analog Sol Tetikleyici ve Sağ Tetikleyici yerine minimum ve maksimum eksen değerini raporlayan dijital düğmelerle değiştirir.
| Kontrol | HID Kullanım Adı | Kullanım Sayfası | Kullanım Kimliği |
|---|---|---|---|
| D-Pad Yukarı, Aşağı, Sol, Sağ | Şapka Anahtarı | 0x01 | 0x39 |
| A | Düğme 1 | 0x09 | 0x01 |
| B | Düğme 2 | 0x09 | 0x02 |
| X | Düğme 3 | 0x09 | 0x03 |
| Y | Düğme 4 | 0x09 | 0x04 |
| LB (sol tampon) | Düğme 5 | 0x09 | 0x05 |
| RB (sağ tampon) | Düğme 6 | 0x09 | 0x06 |
| GERİ | Düğme 7 | 0x09 | 0x07 |
| BAŞLAMAK | Düğme 8 | 0x09 | 0x08 |
| Sol Tetikleyici | Düğme 9 | 0x09 | 0x09 |
| Sağ Tetikleyici | Düğme 10 | 0x09 | 0x0A |
Bu cihazlar ek denetimleri destekleyip desteklemeyebilir, ancak bunlar HID eşlemesi tarafından gösterilmez: Sol Çubuk, Sağ Çubuk, LSB (sol çubuk düğmesi) ve RSB (sağ çubuk düğmesi).
Tekerlek
Bu eşleme bir yarış tekerleği etrafında tasarlanmıştır ve Gamepad HID kullanım türü olarak kullanıma sunulur.
| Kontrol | HID Kullanım Adı | Kullanım Sayfası | Kullanım Kimliği |
|---|---|---|---|
| Tekerlek (Sol Çubuk X) | X | 0x01 | 0x30 |
| Hızlandırıcı Pedalı (Sağ Tetikleyici) + Fren Pedalı (Sol Tetikleyici) | Z* | 0x01 | 0x32 |
| D-Pad Yukarı, Aşağı, Sol, Sağ | Şapka Anahtarı | 0x01 | 0x39 |
| A | Düğme 1 | 0x09 | 0x01 |
| B | Düğme 2 | 0x09 | 0x02 |
| X | Düğme 3 | 0x09 | 0x03 |
| Y | Düğme 4 | 0x09 | 0x04 |
| LB (sol tampon) | Düğme 5 | 0x09 | 0x05 |
| RB (sağ tampon) | Düğme 6 | 0x09 | 0x06 |
| LSB (sol çubuk düğmesi) | Düğme 7 | 0x09 | 0x07 |
| RSB (sağ çubuk düğmesi) | Düğme 8 | 0x09 | 0x08 |
| GERİ | Düğme 9 | 0x09 | 0x09 |
| BAŞLAMAK | Düğme 10 | 0x09 | 0x0A |
Not
(*): Bu, Z'nin fren ve hızlandırıcı kontrolleri için çoğu başlıkta beklenen ortalama davranışını sergilemesi için birleştirilir; Bu, DirectInputaracılığıyla tüm olası pedal kombinasyon değerlerini görmenin mümkün olmadığı anlamına gelir.
Uçuş Çubuğu
Bu eşleme bir uçuş çubuğu etrafında tasarlanmıştır ve HID kullanım türü Oyun Çubuğu olarak kullanıma sunulur.
| Kontrol | Kullanım Adı | Kullanım Sayfası | Kullanım Kimliği |
|---|---|---|---|
| Uçuş Çubuğu (Sol Çubuk) | X, Y | 0x01 | 0x30, 0x31 |
| POV Şapkası (Sağ Çubuk) | Rx, Ry | 0x01 | 0x33, 0x34 |
| Azaltma (Sağ Tetikleyici) | Z | 0x01 | 0x32 |
| Dümen (Sol Tetikleyici) | Rz | 0x01 | 0x35 |
| D-Pad Yukarı, Aşağı, Sol, Sağ | Şapka Anahtarı | 0x01 | 0x39 |
| Birincil Silah (A) | Düğme 1 | 0x09 | 0x01 |
| İkincil Silah (B) | Düğme 2 | 0x09 | 0x02 |
| X | Düğme 3 | 0x09 | 0x03 |
| Y | Düğme 4 | 0x09 | 0x04 |
| LB (sol tampon) | Düğme 5 | 0x09 | 0x05 |
| RB (sağ tampon) | Düğme 6 | 0x09 | 0x06 |
| GERİ | Düğme 7 | 0x09 | 0x07 |
| BAŞLAMAK | Düğme 8 | 0x09 | 0x08 |
| LSB (sol çubuk düğmesi) | Düğme 9 | 0x09 | 0x09 |
| RSB (sağ çubuk düğmesi) | Düğme 10 | 0x09 | 0x0A |
Not
Bu, son Flight Stick tasarımını temel alır. Bu, erken Flight Stick tanımlarından farklı olduğundan, birçok cihazda eski ve yeni modeli destekleyen bir mod anahtarı vardır. Bu eşlemede yeni model varsayılır.