GTK非标准输入

时间:2013-04-11 15:23:08

标签: c gtk

我正在尝试将钢琴键解释为键盘输入。我在Raspberry Pi上通过UART接收钢琴键编号。我有一个使用GTK在C中制作的GUI,当我检测到某些钢琴键时,我需要将它们作为键盘输入或箭头键发送以导航GUI。任何人都知道如何做到这一点?

2 个答案:

答案 0 :(得分:1)

从我收集的内容中,您不希望钢琴键被解释为键盘输入;相反,您希望钢琴键的处理方式与键盘输入相同。收到指定的钢琴键事件后,请调用与相应键盘键相同的功能。

答案 1 :(得分:1)

在Linux中,执行所需操作的最简单方法是使用X11的XTest扩展,尤其是函数XTestFakeKeyEvent

但不要忘记致电XTestQueryExtension来初始化扩展程序!这是一个常见的陷阱:如果你不调用这个函数,其他XTest*函数根本不起作用!

您还可以使钢琴成为编写用户空间驱动程序的真实键盘:您可以使用uinput内核驱动程序创建输入设备并将输入事件发送到内核:基本上它会创建{{1}您可以使用/dev/uinput进行操作的设备,以执行您需要的任何操作。