自定义操纵杆行为Linux - 添加Mod键

时间:2013-06-19 03:43:36

标签: linux linux-device-driver joystick

我对这类东西没有太多经验,所以我想得到一些关于我应该研究的反馈。

情况如下:我有一个操纵杆(Thrustmaster T-Flight Hotas X),它有大约12个按钮。我想要做的是能够按住其中一个按钮并将其用作mod键,这样我就可以将按钮的数量加倍(我实际上有22个按钮)。

现在最好的方法是什么?我目前正在运行Ubuntu 13.10。我相信这个设备是由usbhid驱动程序拾取的。现在我应该尝试编写一个可以产生这种行为的自定义驱动程序,还是有更好/更简单的方法来解决这个问题 - 即拦截事件并在运行中修改它们 - 或者我甚至不知道的其他事情是可能。

无论如何希望我很清楚。试着找出最好的行动方案。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我只是尝试使用现有的Linux游戏杆API

https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/Documentation/input/joystick-api.txt?id=refs/tags/v3.9.6

然后是用户空间,您可以获取所有操纵杆事件,并根据需要处理它们。具体来说,您可以获得按钮按下事件并使用如下逻辑:

void handle_button_y_press()
{
    if (button_X_pressed)
    {
        do_y_function_a();
    }
    else
    {
        do_y_function_b();
    }
}