複数のマウスポインターの座標をプログラムから区別して取得したい

投稿者: Anonymous

C/C++/C#/Pythonで、ポインターごとの座標を取得したい

環境:Ubuntu 18.04LTS
使用マウス:USBマウス
Ubuntu環境では、xinputなどを用いることにより、複数のカーソル(ポインター)をそれぞれ1つずつ割り当てられた複数のマウスでコントロールすることができます。

これを利用し複数作ったポインターそれぞれの区別した座標を、プログラムから継続的に取得したいです。
例えるとすると、OpenSiv3DのCursor::Pos()を複数カーソルについて区別した、みたいな情報がほしいです。

具体的には、xinputで出てくるデバイスのなかで、virtual core pointerや、2nd pointer、3rd pointerなどのそれぞれ区別された座標の取得がしたいです。
区別されたというのは、どのマウスの情報かわからなくなることがない、ということです。
このとき、どのデバイスからの情報からか識別できる必要はなく、その前のフレームで取得したどの情報と発信元が同じかという識別ができればよいです。

調べても何もわからない状況なので、皆様のお力をお借りしたいです。

試したこと

xinputを用いてUSBマウスで複数ポインターをコントロールできた。
UbuntuのファイルシステムからPointerとつくファイルを探してそれぞれの機能を検索した。

補足情報(FW/ツールのバージョンなど)

使用CPU:Ryzen
最終的にC#で制御を行いたいので、C#から呼び出しができる、C, C++, C#, Pythonなどの言語での解決をお願いします。

解決

こちらのコメ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ントで解決しました。ありがとうございました。

この辺が参考になるかも。Linux Input Subsystemの使い方, The Linux input driver subsystem, Linux /dev/input からマウスイベントを取得する, Linux の入力デバイスをカスタマイズ, インプットデバイスの情報を表示するkunif 19年10月6日 15:58

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *