• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Linux Multi-Touch intro
 

Linux Multi-Touch intro

on

  • 610 views

 

Statistics

Views

Total Views
610
Views on SlideShare
610
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 Linux Multi-Touch intro Presentation Transcript

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