2014-12-05 70 views
1

我有音響設備,其中包括一個操縱桿按鈕。(PLANTRONICS starset耳機)如何使用操縱桿按鈕處理設備?

在我的應用程序應該在同一時間使用該設備的多個,我應該得到大約whick一個被點擊直接的聲音信息。我無法將音頻設備與操縱桿按鈕耦合,因爲SDL庫對於所有不同的設備都具有相同的oemname。我們可以在控制面板中看到不同的ID,在以下圖片(Controller PanelGame Controllers)中,在遊戲控制器窗口中顯示相同的id。

如何將設備連接在一起(已經是同一設備,但無法獲得遊戲杆按鈕的真實名稱),如何以編程方式獲取C++中操縱桿(usb)設備的真實名稱?

回答

0

我解決了這個問題,跟蹤註冊表中的設備。我的設備是音頻 - 麥克風 - 操縱桿設備,也是HID。所以windows分別標識每個設備。在註冊表中,聲音,音頻和遊戲杆的相同設備記錄具有相同的parentID值。因此,我可以使用該parentID值將遊戲杆設備與聲音設備相匹配。

SDL使用Directx枚舉與Directx相同順序的設備。使用directx,我們可以從directx設備的「DIPROP_GUIANDPATH」屬性中獲取該「parentID」值。因此,我從Directx獲取設備的parentID值,並將該設備名稱與SDL中具有相同索引的相同設備進行匹配。所以我可以得到按下按鈕的操縱桿的名稱。如果有需求,我可以提供詳細信息。