What is Toluu?
Toluu is a free service for sharing the feeds you read and discovering new ones.
Get Invite

MPX: The Multi-Pointer X Server -

asdfasdf


Last day at Uni - shifting the blogJune 29 2008

Today was my last day at uni. Working here was great, since the team in the lab was not only quite knowledgable, they were also a lot of fun to hang out with. Likewise, thanks to the University I was able to publish all the code I wrote during my PhD candidature as open source, which will eventually benefit (or annoy) a lot of people. Thanks to all who helped me over the years.

As part of cleaning out my desk I am shifting this blog to
http://who-t.blogspot.com.

Consider this blog to be discontinued.

Likewise, in the foreseeable future, my email peter@cs... will be shut down. Please update to peter.hutterer, at the domain who-t.net.




Multi-touch? or multi-point?June 12 2008

Increasingly I get as whether MPX allows multi-touch. The answer is neither yes nor no.

There is a bit of confusion out there as to what constitutes multi-touch. The simple answer "deals with multiple touch points" isn't quite that simple.

What is "touch"? In user interfaces, it usually means being able to manipulate an object by touching a sensitive surface. This can be done indirectly (touchpad on the laptop) or directly (touch screens).

To the X server, whether it's direct or indirect manipulation is irrelevant. What does matter though is the data the touch-device provides. Many devices reduce the touch point to a simple x/y coordinate (e.g. Wacom tablets, most touchscreens in public places, and AFAIK even the iPhone do essentially that [1]). From the X server's point, there is no difference between a mouse and such a touch device. MPX is multi-point, i.e. if your device supports multiple touch points, or you have multiple such devices, you have already won. Use them. Write software for them.

But - and here's the big difference: some devices can detect the area of touch, rather than a single point. And here's where it gets interesting, as this allows gestures. Touch with a flat hand is different to the side of hand, is different to the thumb, is different to a finger. This is true "touch support", and by far not commonplace yet. One of the prominent examples that supports true multi-touch is MS Surface.

MPX doesn't do multi-touch. But

MPX has been merged.May 26 2008

http://lists.freedesktop.org/archives/xorg/2008-May/035641.html

For those of you watching xorg-commits, you may have noticed that MPX has been
merged into master [1].
The client-side libraries and protocol headers have been merged quietly last
week already, this time is just the xserver itself.

A change in the previously proposed schedule [2]: the XKB rework didn't make
it. With the recent SSL issue and other workloads, Daniel wasn't able to get
it ready in time. We agreed on merging MPX without it, as it should not affect
XKB much anyway.

A number of changes went in since the announce, the most important being the
return of input device cordinate scaling. Tablets can thus be used. Thanks to
Magnus Vigerloef for his help on this matter.

The input ABI has been bumped and all the input drivers on fdo have been
updated to compile with the new API. You will need to get the latest version
however. I don't think the ABI will remain stable until the next release, but
I figured input modules not loading encourages people to fetch the latest
release rather than complaining about them not compiling anymore.

The video ABI has not been bumped yet, but you _must recompile_ your video
driver. No API changes, a recompile is enough.

As previously mentioned, existing setups should not be affect














wiimote updateDecember 17 2007

xf86-input-wiimote 0.0.1 is out. And it might just work on your machine (server 1.4 at minimum).

IR is supported now, nunchuk works too. The classic controller doesn't yet, I don't have one.
Tried it yesterday with two controllers under MPX and found the ability to juggle windows to be suffiently entertaining for 30 seconds.

Thanks to the X Input Extension specs I had to cheat a bit. Turns out that you can't have a device that reports both relative and absolute coordinates. So if you activate IR on the wiimote, you'll get two motion events - one containing just the two IR coordinates, one containing all axes (including IR). Also this means that IR - if enabled - must have the first two axes. All other axes can be mapped around though.

If you disable IR, x/y tilt will move the system cursor. Mostly useless, but fun.

Example section in your config.

Section "InputDevice" Identifier "wii" Driver "wiimote" Option "Device" "00:19:1D:12:34:56" Option "IR" "yes" # default enabled Option "Accelerometer" "no" #default disabled Option "Tilt" "yes" Option "Nunchuk" "no" # default disabled # switch leds 2 and 3 on Option "LED3" "yes" Option "LED2" "yes" EndSection