0

DirectFB1.2.9またはQtEmbedded4.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 デバイスでデータを取得していますか? デバイスを猫にしようとしましたか?

于 2012-12-21T07:12:55.150 に答える