Любопытно, характер данных, которые возвращает чтение /dev/input/, для мышки и планшета отличается. То есть в общем и целом вывод похож, но разница имеется. При перемещении мышки встречаются длинные блоки данных, иногда по 50-100 байт (каждый блок, видимо, заканчивается EF BF BD):
28 0A 20 20 20 20 20 20 20 20 EF BF BD
От планшета таких данных нет:
6A 02 38 EF BF BD EF BF BD 18 EF BF BD EF BF BD 38 EF BF BD
В основном при перемещении пера я получал 1-2 байта (изредка до 5-7) и затем EF BF BD, но зато блоков было много. При перемещении мыши я получал мало блоков, но они были длинные.
В коде драйвера можно найти, что планшеты точно так же, как и мышки, возвращают ускорение перемещения, но делают это как-то по странному:
Код:
switch (event->code) {
case REL_X:
xaccel = 1;
if(priv->mouseAccel) {
if(abs(event->value) > 2) {
xaccel = 2;
} else if(abs(event->value) > 4) {
xaccel = 3;
} else if(abs(event->value) > 6) {
xaccel = 4;
}
}
x = x + (xaccel * priv->mouseSpeed * event->value);
Плюс есть отдельное событие на передачу абсолютных координат. По идее, добавление вот такой хрени позволит работать в Колибри практически со всеми планшетами.