Multi-touch ввод в ОС Linux                Аляутдин Р.Т.            ralyautdin@dev.rtsoft.ru1
План     ●       Multitouch / Gesture support     ●       Реализация multitouch ввода в Linux     ●       Развитие идей вв...
Multitouch / Gesture support (1)                         Nokia N9 (MeeGo)3
Multitouch / Gesture support (2)                           a) Pan gesture                           b) Swipe gesture      ...
Multitouch / Gesture support (3)                           Использование                              жестов в            ...
Multitouch / Gesture support (ВЫВОД)             Человеко-машинное          взаимодействие с помощью            жестов ста...
Реализация multitouch ввода в Linux      ●        Общий принцип работы      ●        Поддержка в ядре          ●          ...
Общий принцип работы      ПРИКЛАДНАЯ БИБЛИОТЕКА                  XORG ДРАЙВЕР      USERLAND          ВВОДА                ...
Поддержка multi-touch в ядре      ●          Ядро 2.6.30 (июнь 2009)          первый multitouch протокол в          подсис...
Протокол А       ●           Драйвер должен посылать весь набор координат            всех контактов       ●           Нет ...
Протокол А (Пример)      ABS_MT_POSITION_X x[0]       ●      ABS_MT_POSITION_Y y[0]      SYN_MT_REPORT      ABS_MT_POSITIO...
Протокол B       ●           Вводятся понятие слотов и отслеживаемых             контактов       ●           Драйвер отмыл...
Протокол B (Пример)       ABS_MT_SLOT 0       ABS_MT_TRACKING_ID 45       ABS_MT_POSITION_X x[0]       ABS_MT_POSITION_Y y...
Поддержка в userland. XORG       ●           XORG — первый релиз 2004 год           при этом X-сервер существует с 1984 го...
Поддержка в userland. MTEV       ●           NOKIA при создании MeeGo нужен был мультитач             в Qt       ●        ...
Поддержка в userland. XINPUT2.2       ●           XServer 1.12 дает полную поддержку       ●           Не все фреймворки г...
Поддержка в userland. Библиотеки       ●           Qt поддерживает мультитач и жесты       ●           Классы жестов плохо...
Пример. Gentoo + MTEV + QML18
Развитие идей ввода19
Развитие идей ввода       ●           Жесты      (высокая      сложность            распознаваия)       ●           Исполь...
ВОПРОСЫ?21
Upcoming SlideShare
Loading in...5
×

Linux Multi-Touch intro

517

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
517
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Linux Multi-Touch intro

  1. 1. Multi-touch ввод в ОС Linux Аляутдин Р.Т. ralyautdin@dev.rtsoft.ru1
  2. 2. План ● Multitouch / Gesture support ● Реализация multitouch ввода в Linux ● Развитие идей ввода2
  3. 3. Multitouch / Gesture support (1) Nokia N9 (MeeGo)3
  4. 4. Multitouch / Gesture support (2) a) Pan gesture b) Swipe gesture c) Pinch gesture4
  5. 5. Multitouch / Gesture support (3) Использование жестов в качестве пароля5
  6. 6. Multitouch / Gesture support (ВЫВОД) Человеко-машинное взаимодействие с помощью жестов стало де-факто стандартом6
  7. 7. Реализация multitouch ввода в Linux ● Общий принцип работы ● Поддержка в ядре ● Протокол А/B ● Поддержка в userspace ● XORG ● MTEV ● XINPUT 2.2 ● Поддержка в библиотеках ● Пример7
  8. 8. Общий принцип работы ПРИКЛАДНАЯ БИБЛИОТЕКА XORG ДРАЙВЕР USERLAND ВВОДА “ЭКРАН” “ТАЧСКРИН” драйвер ЯДРО тачскрина HW КОНТРОЛЛЕР8
  9. 9. Поддержка multi-touch в ядре ● Ядро 2.6.30 (июнь 2009) первый multitouch протокол в подсистеме ввода ● Современные ядра поддерживают два типа протокола ● Протоколы нужны для лучшего отражения возможностей аппаратной части ● Linux/Documentation/input/multi-touch-protocol.txt9
  10. 10. Протокол А ● Драйвер должен посылать весь набор координат всех контактов ● Нет отслеживания контактов ● Недостаток — большой избыточный поток данных в юзерленд ● Подходит для простых контроллеров тачскрина без трекинга10
  11. 11. Протокол А (Пример) ABS_MT_POSITION_X x[0] ● ABS_MT_POSITION_Y y[0] SYN_MT_REPORT ABS_MT_POSITION_X x[1] “ТАЧСКРИН” ABS_MT_POSITION_Y y[1] SYN_MT_REPORT SYN_REPORT ABS_MT_POSITION_X x[1] ABS_MT_POSITION_Y y[1] “ТАЧСКРИН” SYN_MT_REPORT SYN_REPORT11
  12. 12. Протокол B ● Вводятся понятие слотов и отслеживаемых контактов ● Драйвер отмылает только обновления по определенному контакту ● Уменьшается поток данных от ядра ● Контроллер должен поддерживать эту фичу12
  13. 13. Протокол B (Пример) ABS_MT_SLOT 0 ABS_MT_TRACKING_ID 45 ABS_MT_POSITION_X x[0] ABS_MT_POSITION_Y y[0] “ТАЧСКРИН” ABS_MT_SLOT 1 ABS_MT_TRACKING_ID 46 45 46 ABS_MT_POSITION_X x[1] ABS_MT_POSITION_Y y[1] SYN_REPORT ABS_MT_SLOT 0 ABS_MT_POSITION_X x[0] SYN_REPORT “ТАЧСКРИН” 45 4613
  14. 14. Поддержка в userland. XORG ● XORG — первый релиз 2004 год при этом X-сервер существует с 1984 года ● XORG отвечает не только за графику, но и за средсва ввода ● Не был готов к тач революции середины нулевых ● MPX — шаг навстречу мультитач ● Были созданы “workaround” до нативной поддержки XORG multi-touch – Релиз XServer 1.12 (июнь 2012) содержит XINPUT 2.2 и полную поддержку multi-touch14
  15. 15. Поддержка в userland. MTEV ● NOKIA при создании MeeGo нужен был мультитач в Qt ● MeeGo — Linux c Qt в качестве верхнего слоя для разработки ПО ● Был написан драйвер MTEV для XServer ● Использует MPX ● Qt c патчем понимает протокол и преобразует в соответсвующие классы ● MTEV — это workaround, пока все ждали native support15
  16. 16. Поддержка в userland. XINPUT2.2 ● XServer 1.12 дает полную поддержку ● Не все фреймворки готовы: ● Qt сначала вообще отказывался в пользу Wayland ● GTK+ 3.4 обещает подержку ● Fedora 17 должна стать первым дистрибутивом с полной поддержкой ● Name: Peter Hutterer ● Email: <peter.hutterer@redhat.com> ● Обещает самый прогрессивный мультитач16
  17. 17. Поддержка в userland. Библиотеки ● Qt поддерживает мультитач и жесты ● Классы жестов плохо работают (4.7) ● Рекомендуется использовать QML17
  18. 18. Пример. Gentoo + MTEV + QML18
  19. 19. Развитие идей ввода19
  20. 20. Развитие идей ввода ● Жесты (высокая сложность распознаваия) ● Использование датчиков ● Использование камер20
  21. 21. ВОПРОСЫ?21

×