• Save
Linux Multi-Touch intro
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Linux Multi-Touch intro

on

  • 692 views

 

Statistics

Views

Total Views
692
Views on SlideShare
692
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Linux Multi-Touch intro Presentation Transcript

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