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

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
719
On Slideshare
719
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

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