내 목표는 표준 라이브러리를 사용하여 제스처를 인식하고 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 제스처 프로그래밍 프로젝트.
이 두 가지 유익한 기사는 훌륭한 소스 자료이며 오늘날 기술이 어디에 있는지에 대한 아이디어를 제공해야 합니다.
$> xinput --list
위 명령은 xInput 장치를 나열합니다.
애플리케이션에서 원하는 제스처 기능을 구현할 수 있지만 이러한 격차를 메울 수 있는 옵션(예: uTouch 제스처 프로그래밍 프로젝트)도 있습니다.
장치에서 입력을 읽는 한 두 패키지 중 하나를 추천할 수 있습니다.
$> xev --display :0 -id $WINDOW_ID >> to.file
- [--display]는 xserver 디스플레이 #입니다(내 것은: 0).
- [id]는 창 ID #입니다($> wmctrl -lG와 같은 명령을 통해 얻을 수 있음).
위 제목은 동일한 작업을 수행하지만 입력 이벤트를 인쇄하는 Python 스크립트입니다. XEV는 입력 이벤트의 기하학적 구조를 기록하므로 XEV가 솔루션이 될 것이라고 믿습니다.
이게 도움이 되길 바란다!