【发布时间】:2012-12-21 05:59:50
【问题描述】:
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:.." 的东西?
【问题讨论】:
-
通过 QWS_MOUSE_PROTO 设法让鼠标直接从 QT 工作。但不出所料,没有热插拔。
标签: qt directfb qtembedded hotplugging