Мы пытаемся генерировать события мыши на основе необработанных данных, поступающих с емкостного экрана (который является устройством HID). Это поддерживаемые события, основанные на следующих типах событий:
https://www.kernel.org/doc/Documentation/input/event-codes.txt
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 2794
Min 0
Max 4095
Event code 1 (ABS_Y)
Value 2690
Min 0
Max 4095
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 11
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 4095
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 4095
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Пример:
Event: time 1579259355.209747, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 19
Event: time 1579259355.209747, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1849
Event: time 1579259355.209747, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1592
Event: time 1579259355.209747, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1579259355.209747, type 3 (EV_ABS), code 0 (ABS_X), value 1849
Event: time 1579259355.209747, type 3 (EV_ABS), code 1 (ABS_Y), value 1592
Event: time 1579259355.209747, -------------- SYN_REPORT ------------
Event: time 1579259355.303718, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1579259355.303718, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1579259355.303718, -------------- SYN_REPORT ------------
Цель что, исходя из этого, мы хотим сгенерировать следующие события:
- mouse / leftClick
- mouse / Position (x, y) position в пиксельных координатах
- мышь / Нажатие: отправляет событие опускания мыши mouse / Release: отправляет событие подъема мыши
Но также и события сенсорной панели, такие как защемление, сжатие и т. д. c.
Некоторые из них тривиальны, а другие нет.
Знаете ли вы библиотеку C ++ или программное обеспечение, которое выполняет это преобразование?