Исходные данные для событий мыши - PullRequest
0 голосов
/ 05 мая 2020

Мы пытаемся генерировать события мыши на основе необработанных данных, поступающих с емкостного экрана (который является устройством 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 ++ или программное обеспечение, которое выполняет это преобразование?

...