gpt4 book ai didi

c - 在 Linux 上用 C 读取游戏 handle 输入的现代方法

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:30 26 4
gpt4 key购买 nike

我有兴趣阅读游戏 handle 输入,特别是具有有线 xbox 360 Controller 布局的游戏 handle ,在 Linux 机器上使用 C。我知道这可以通过多种方式完成,但是我想知道实现此目的的现代方法是什么。据我了解,evdev 是“ future ”,而 Joystick API 是遗留的。使用 libudev 我能够找到连接的游戏 handle 并检测它们何时连接和断开连接:

// skipping setup code ....
char const* val = udev_device_get_property_value(dev, "ID_INPUT_JOYSTICK");
if (val != NULL && strcmp(val, "1") == 0) {
char const* devfs_path = udev_device_get_devnode(udev_device);
}
// .....
struct udev_device* device = udev_monitor_recieve_device(udev_monitor);
char const* action = udev_device_get_action(device);
if (strcmp(action, "add") == 0) {
// .....
}
if (strcmp(action, "remove") == 0) {
// .....
}

我的问题的症结在于阅读按钮按下和轴移动的最佳方式。目前,我不确定是使用 struct js_event 还是 struct input_event。事实上,我希望能够通过使用 libudev 对连接和移除的游戏 handle 进行相同的检查来做到这一点。如果这不可能,哪种方法最具前瞻性?谢谢。

最佳答案

根据kernel docs

Newer clients are encouraged to switch to the generic event (evdev) interface.

可在 linux input kernel community docs 中找到所需 Controller 的特定映射。

因此,使用struct input_event

关于c - 在 Linux 上用 C 读取游戏 handle 输入的现代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54508776/

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