- Recent
- Popular
- Tags (0)
- Subscribers (1)
- Last day at Uni - shifting the blogJune 30
-
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.
- DiamondTouch 0.3.0June 25
-
xf86-input-diamondtouch 0.3.0 is out.
This is basically just to tie up some loose ends, the driver was broken since I had to orphan the blob branch. 0.3.0 builds against current master, all blob stuff is deactivated.
The driver now supports multi-device hotplugging through the option "NumDevices". This enables users to let the DT be hotplugged through HAL, but still create up to 4 devices in the X server to represent the required number of users.
Look at the HOTPLUG.README to get hotpluggy goodness.
Get it while it's fresh.
http://people.freedesktop.org/~whot/diamondtouch/xf86-input-diamondtouch-0.3.0.tar.bz2
MD5: 5b6f3ae84cfd38bca2c3e6fdf9057ee1 xf86-input-diamondtouch-0.3.0.tar.bz2
SHA1: b42e1dd23ecbcf833899d36027435b120aa65e71 xf86-input-diamondtouch-0.3.0.tar.bz2http://people.freedesktop.org/~whot/diamondtouch/xf86-input-diamondtouch-0.3.0.tar.gz
MD5: a4e97ff3407efb907b1a699949745e8d xf86-input-diamondtouch-0.3.0.tar.gz
SHA1: d05a6db882c6113ab8076ffe0f8f9ef70b1ca1e0 xf86-input-diamondtouch-0.3.0.tar.gz
- Multi-touch? or multi-point?June 12
-
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
- So you want to build a multi-device aware application?June 4
-
The use of Xlib for XInput has changed a bit, but not that much. This mini-tutorial shows you how to get the list of devices and how to register for events. For many applications, this is pretty much all you need.
Let's get started. The two most important changes to previous versions of XInput are:
- applications have to announce support for XI 2 (MPX).
- the list of input devices contains multiple core devices.
Announcing support for XI 2 is easy, just issue an XQueryInputVersion() before you use any other XI requests. The reason why this is necessary is simple: the behaviour of XInput has changed, and the server must know which clients suports XI 1.x, and which clients support XI 2. This way, it can change some replies accordingly to make XI 1.x clients not break. In practice, your code should look something like this:
int main (int argc, char* * argv) { Display * dpy; dpy = XOpenDisplay(NULL); XQueryInputVersion(dpy, XI_2_Major, XI_2_Minor); /* do stuff */ XCloseDisplay(dpy); return 0; }Next, we want to know which devices are actually available. XListInputDevices() does this for us. It returns an array with XDeviceInfo structs, each of which specifies the name, id and the capabilities of the devices. In addition, the XDeviceInfo also contains a "use" field, which is of some importance. The use field can have one of 5 values:
- IsXPointer for any
- MPX has been merged.May 27
-
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
