0

在 DirectFB 1.2.9 或 Qt Embedded 4.7.3 中有什么方法可以实现 USB 鼠标的热插拔?

目前我的应用程序堆栈是这样的..

 -----------------
       GUI
 -----------------
 Qt Embedded 4.7.3
 -----------------
   DirectFB 1.2.9
 -----------------
 /dev/input/eventX
 -----------------

DirectFB 打开 Linux 输入设备节点。Qt 使用 QSocketNotifier 等待 DirectFB 事件缓冲区并设置一个插槽来读取鼠标数据。但是在热插拔时,DirectFB 不会打开设备节点,也不会生成鼠标事件。

据我所知,DirectFb 不支持热插拔。

我尝试禁用 DirectFB 对 Linux 输入设备的处理(从 directfbrc 中的 linux-input-devices= 选项中删除 dev 节点),并设置 QWS_MOUSE_PROTO="linuxinput:.." 但这由于某种原因不起作用。似乎没有生成鼠标事件。即使我设法让它工作,我也不认为 QT 对热插拔提供任何支持。

那么我唯一的替代子类 QMouseDriverPlugin 和 QWSMouseHandle 类吗?为此,我还没有弄清楚如何让 QT 使用我实现的子类。即,一旦我实现了这些类,我如何将它们链接到 QT 输入设备处理框架中,以便我可以设置类似 QWS_MOUSE_PROTO="mylinuxinput:.." 的东西?

4

1 回答 1

1

据我所知,在 Qt Embedded 4.7.2(没有 DirectFB)中,我没有遇到鼠标或键盘热插拔的问题。如果您想自己子类化,请从 linuxinput 插件开始修改插件。您会在 Qt 源代码中找到:是放置插件的目录,但某些类包含在其他目录中。

另外,您在插入后是否在您的 linux 设备中获取数据?您是否尝试过 cat 设备?

于 2012-12-21T07:12:55.150 回答