gpt4 book ai didi

c++ - 如何处理带有操纵杆按钮的设备?

转载 作者:太空宇宙 更新时间:2023-11-04 13:42:21 24 4
gpt4 key购买 nike

我有一个包含操纵杆按钮的音频设备。(plantronics starset 耳机)

在我的应用程序中,我应该同时使用多个这样的设备,我应该得到关于点击哪个设备来引导声音的信息。我无法将音频设备与操纵杆按钮耦合,因为 SDL 库为所有不同的设备获得相同的 oemname。我们可以在控制面板中看到不同的 id,在以下图片的游戏 Controller 窗口中看到相同的 id(Controller PanelGame Controllers)。

如何耦合设备(已经是同一个设备,但我无法获得操纵杆按钮的真实名称),如何以编程方式在 C++ 中获得操纵杆(USB)设备的真实名称?

最佳答案

我通过在 regedit 中跟踪设备解决了这个问题。我的设备是音频麦克风操纵杆设备,也是 HID。所以 Windows 分别识别每个设备。在regedit中同一设备记录的sound、audio和joystick有相同的parentID值。所以我可以将操纵杆设备与具有该 parentID 值的声音设备相匹配。

SDL 以与 Directx 相同的顺序枚举设备。使用 directx,我们可以从 directx 设备的“DIPROP_GUIANDPATH”属性中获取“parentID”值。因此,我从 Directx 获取设备的 parentID 值,并将该设备名称与具有相同索引和 SDL 的同一设备匹配。所以我可以获得按下按钮的操纵杆的名称。如果有人需要,我可以提供详细信息。

关于c++ - 如何处理带有操纵杆按钮的设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27318748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com