私の目標は、標準ライブラリを使用してジェスチャーを認識し、Java 8でこれらのイベントを使用することです。 Ubuntuにジェスチャー認識スタック(grail、geis)があることはわかっていますが、それを統合する方法をまだ理解していません。
私はEETI eGTouchドライバ(eGTouchDバージョン:2.5)と一緒にeGalaxTouchタッチフィルム(PCAP7200シリーズ)を使用しています。私のLinux Mint 17はこのデバイスをマウスとして認識します。
デバイスのイベントを読むと、/dev/input/eventX
マルチタッチイベント(ABS_MT_SLOT, ABS_MT_TRACKING_ID, ABS_MT_POSITION_X, ABS_MT_POSITION_Y
)が発生することがわかりました。
標準のLinux機能を使用してジェスチャーを検出し、これらのイベントをアプリケーション(私の場合はJavaFX2アプリケーション)に伝播できますか?または、アプリケーションがジェスチャーを認識する必要がありますか?これはLinuxライブラリが利用できないという意味ですか?
標準マウスに加えて、マルチタッチデバイス用の特別なデバイスタイプはありますか?
答え1
標準のLinuxライブラリにはジェスチャープログラミング技術は組み込まれていません。しかし、xinputデバイスで読むことができ、方法を紹介します。まず、xInputプログラミング履歴、Xジェスチャプログラミングに関するいくつかの記事をリンクします。そして私が信じているのは、コマンドと外部ライブラリに関する記事を提供します。それはあなたのために働きます。
これはxorg-multitouch拡張の歴史です。ジェスチャープログラミングを扱って引用します。uTouchジェスチャープログラミングプロジェクト。
これら2つの有益な記事は素晴らしいソース資料であり、今日の技術がどこにあるかについてのアイデアを提供する必要があります。
$> xinput --list
上記のコマンドは xInput デバイスをリストします。
アプリケーションで目的のジェスチャー機能を実装できますが、これらのギャップを埋めるオプション(uTouchジェスチャープログラミングプロジェクトなど)もあります。
デバイスから入力を読み取る限り、2つのパッケージのいずれかをお勧めします。
$> xev --display :0 -id $WINDOW_ID >> to.file
- [--display]はxserverディスプレイ#です(私は:0)。
- [id]はウィンドウID#です($> wmctrl -lGなどのコマンドで取得できます)。
Key-Mon は xInput からイベントを読み込みます。
上記のタイトルは同じことを行いますが、入力イベントを印刷するPythonスクリプトです。 XEVは入力イベントの幾何学的構造を記録するので、XEVはソリューションになると信じています。
これが役立つことを願っています!