Propagar eventos multitáctiles a aplicaciones

Propagar eventos multitáctiles a aplicaciones

Mi objetivo es usar bibliotecas estándar para reconocer gestos y usar esos eventos con Java 8. Sé que hay una pila de reconocimiento de gestos para Ubuntu (grial, geis), pero aún no entendía cómo unirlo todo.

Estoy usando una lámina táctil eGalaxTouch (serie PCAP7200) con un controlador EETI eGTouch (versión eGTouchD: 2.5). Mi Linux Mint 17 reconoce este dispositivo como un mouse.

Leí los eventos del dispositivo /dev/input/eventXy descubrí que genera eventos multitáctiles ( ABS_MT_SLOT, ABS_MT_TRACKING_ID, ABS_MT_POSITION_X, ABS_MT_POSITION_Y).

¿Existe la posibilidad de detectar gestos con funcionalidades estándar de Linux y propagar esos eventos a una aplicación (en mi caso, una aplicación JavaFX2)? ¿O tengo que reconocer gestos dentro de mi aplicación, lo que significa que no puedo utilizar ninguna biblioteca de Linux?

¿Existe algún tipo de dispositivo especial para dispositivos multitáctiles, además del mouse estándar?

Respuesta1

Las bibliotecas estándar de Linux no tienen la tecnología integrada para la programación gestual; Sin embargo, puedes leer desde dispositivos xinput y te mostraré cómo, pero primero te vincularé a algunos artículos sobre la historia de la programación xInput, la programación gestual para X y, finalmente, los comandos y la biblioteca externa que creo que serle útil.

Historial multitáctil de LWN.Net Xinput

Esta es la historia de la extensión xorg-multitouch. Toca la programación gestual y hace referencia a laProyecto de programación gestual uTouch.

Estos dos artículos informativos son una buena fuente de material y deberían permitirle comprender la situación actual de la tecnología.

XManual de entrada

$> xinput --list

El comando mencionado anteriormente enumerará sus dispositivos xInput.

La funcionalidad gestual que necesita se puede crear dentro de su aplicación, pero hay opciones, como el proyecto de programación gestual uTouch, que también pueden llenar el vacío.

En cuanto a leer la entrada del dispositivo, puedo recomendar uno de dos paquetes.

XEV Leer eventos de xInput

$> xev --display :0 -id $WINDOW_ID >> to.file
  • [--display] es el número de pantalla de tu xserver (el mío es: 0)
  • [id] es su número de ID de ventana (esto se puede obtener con un comando como $> wmctrl -lG)

Eventos de lectura de Key-Mon desde xInput

El subtítulo anterior es un script de Python que hace lo mismo, pero imprime eventos de entrada. Creo que XEV será la solución para usted, porque XEV registra la geometría de los eventos de entrada.

¡Espero que esto ayude!

información relacionada