Моя цель — использовать стандартные библиотеки для распознавания жестов и использовать эти события с Java 8. Я знаю, что для Ubuntu есть стек распознавания жестов (grail, geis), но я пока не понимаю, как все это объединить.
Я использую сенсорную пленку eGalaxTouch (серия PCAP7200) с драйвером EETI eGTouch (версия eGTouchD: 2.5). Мой 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 и, наконец, на команды и внешние библиотеки, которые, как я считаю, будут вам полезны.
История мультитач LWN.Net Xinput
Это история расширения xorg-multitouch. Она касается жестового программирования и ссылается наПроект программирования жестов uTouch.
Эти две информативные статьи являются хорошим источником информации и должны дать вам представление о том, на каком уровне находится эта технология сегодня.
$> xinput --list
Приведенная выше команда выведет список ваших устройств xInput.
Необходимую вам функциональность жестов можно реализовать в вашем приложении, но существуют и другие варианты, например, проект программирования жестов uTouch, которые также могут заполнить этот пробел.
Что касается считывания входных данных с устройства, я могу порекомендовать один из двух пакетов.
XEV считывает события из xInput
$> xev --display :0 -id $WINDOW_ID >> to.file
- [--display] — номер вашего дисплея xserver (у меня :0)
- [id] — ваш идентификатор окна # (его можно получить с помощью команды типа $> wmctrl -lG)
События чтения Key-Mon из xInput
Вышеуказанный скрипт Python, который делает то же самое, но выводит события ввода. Я считаю, что XEV будет решением для вас, потому что XEV записывает геометрию событий ввода.
Надеюсь, это поможет!