Meego Wiki
Views
From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(wikify links and list)
 
(19 intermediate revisions not shown)
Line 1: Line 1:
Random tidbits of information about projects I'm hacking on...
Random tidbits of information about projects I'm hacking on...
-
==multi-point-touch==
+
* [[User:Jketreno/multi-point-touch|Multi-Point-Touch on MeeGo]]
-
During the MeeGo Conference I gave a presentation on multi-point-touch support on MeeGo ([http://conference2010.meego.com/session/multi-touch-meego-hardware-user overview and video] [http://conference2010.meego.com/sites/all/files/sessions/meego-conference-2010-multi-point-touch.odp slides]).  As mentioned during that presentation, to add multi-point-touch to Qt applications running on top of MeeGo 1.1 requires a few changes. 
+
* [[User:Jketreno/content|Improving MeeGo Content Management]]
-
 
+
* [[User:Jketreno/scaling|A Density Independent UI on MeeGo]]
-
The components that need to be changed are:
+
* [[User:Jketreno/theme-assets|Theme Assets]]
-
* Kernel -- You need kernel touch drivers that are in sync with upstream.  As of January 1st 2011, MeeGo Trunk has the correct kernel drivers.
+
* [[User:Jketreno/meego-image-resize|MeeGo Image Resize script]]
-
* Qt -- You need a version of Qt that has the XInput2.0 patches applied
+
-
 
+
-
New components:
+
-
* mtdev -- Library to translate kernel protocol A and B to protocol B, adding tracking information
+
-
* xf86-input-mtev -- X input driver that communicates with mtdev to obtain multi-point data from the kernel
+
-
 
+
-
To get the above, you can add my home project:
+
-
cd /etc/zypp/repos.d
+
-
sudo wget http://download.meego.com/live/home:/jketreno/Trunk/home:jketreno.repo
+
-
sudo sed -i -e 's,^gpg,#gpg,g' home:jketreno.repo
+
-
zypper refresh
+
-
 
+
-
Next, force a re-installation of the packages provided from my home project:
+
-
zypper install -f --from=home_jketreno mtdev xf86-input-mtev libqt* qt-*
+
-
 
+
-
It will prompt you to switch to the versions of the various packages provided from the above repository.  Accept the changes, and reboot.
+
-
 
+
-
==enabling a native application==
+
-
Prior to having patches to Qt to add XInput2.0 support, applications had to load a plugin that would connect to the X event queue and process the XInput2.0 events.  That is no longer necessary and applications will now just work.
+
-
 
+
-
==enabling a QML application==
+
-
For gestures, you should use the qml-gesturearea project from qt-labs to add multi-point touch gestures to your QML applications.
+
-
 
+
-
==qml-gesturearea==
+
-
As Frederik Gladhorn indicated during [http://conference2010.meego.com/session/gestures-qt his talk] at the MeeGo Conference in Dublin, the folks over at Qt have been working on an improved QML GestureArea component. 
+
-
 
+
-
You can pull and play with what they're cooking as follows:
+
-
git clone git://gitorious.org/qt-labs/qml-gesturearea.git
+
-
git clone git://gitorious.org/qt-labs/qml-gestures-examples.git
+
-
If you are building qml-gesturearea with a version of Qt prior to 4.7.1, you may need to patch it to get it to build:
+
-
cd qml-gesturearea
+
-
sed -i -e 's,q->timeout(),700,g' qdeclarativegesturerecognizers.cpp
+
-
qmake
+
-
make && sudo make install
+
-
 
+
-
==core pointer==
+
-
If you do nothing, X will default to binding the touch device to the Core Pointer.  This means that as you move your finger around, mouse events will be generated, the cursor will move, etc.  If X is already running, you can use the xinput utility to "float" the touch device.  On the Lenovo S10, running 'xinput list' shows something like the following:
+
-
 
+
-
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
+
-
⎜  ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
+
-
⎜  ↳ Cando Corporation Cando 10.1 Multi Touch Panel with Controller    id=13  [slave  pointer  (2)]
+
-
⎜  ↳ SynPS/2 Synaptics TouchPad                id=16  [slave  pointer  (2)]
+
-
...
+
-
 
+
-
Looking at the above, you can see the touch device (Cando Corporation...) is device id 13.  To float that input device, run:
+
-
 
+
-
xinput float 13
+
-
 
+
-
and verify that touching the screen no longer moves the mouse pointer.
+
-
 
+
-
To perform the following every time you start X, you can add:
+
-
Option "SendCoreEvents" "false"
+
-
to the InputClass section for the device, for example you can place the following in /usr/share/X11/xorg.conf.d as 60-cando.conf:
+
-
Section "InputClass"
+
-
        Identifier "Cando Multi Touch Panel"
+
-
        MatchVendor "Cando"
+
-
        MatchDevicePath "/dev/input/event*"
+
-
        Driver "mtev"
+
-
        Option "SendCoreEvents" "false"
+
-
EndSection
+
-
 
+
-
Having the input device disconnected from the Core Pointer, combined with the FocusIn/FocusOut mechanism in the multipointtouchplugin means that window focus will have to be given to windows via an actual mouse pointer (since X will no longer be parsing touch input as an Core pointer input device) or by other means (pressing the application in the app switcher, for example)
+
-
 
+
-
==meego packages you may need==
+
-
To perform the above steps on this wiki, a new MeeGo installation may need a few utilities and packages installed:
+
-
zypper install git patch xorg-x11-utils-xinput
+

Latest revision as of 10:55, 26 April 2011

Random tidbits of information about projects I'm hacking on...

Personal tools