← Back to team overview

multi-touch-dev team mailing list archive

Re: mtdev library and Xorg

 

On 12/28/2010 10:29 AM, Armando Visconti wrote:
> Ciao Henrik,
> 
>>> I understand that the mtdev library is in
>>> charge of translating from Type A protocol to Type B (slotted) protocol.
>>>
>>> I guess that the evdev driver in Xorg should be modified in order to
>>> use mtdev library, right?
>>>     
>>
>> Yes, an X driver capable of understanding the kernel/mtdev protocol is
>> needed in order to translate to the X world. In Natty, we achieve this
>> by modifying evdev to translate to the XI2.1 protocol.
>>   
> 
> OK, clear.
> So, basically we need to comply to Xinput 2.1.

After reading the thread, I worry that there may have been a disconnect.
You and Henrik may be on the complete same page, so feel free to ignore
:). I just wanted to state a few things in more detail.

The kernel has two protocols. New drivers should be written for protocol
B (the "slotted" protocol). This will become even easier in 2.6.38 when
the input multitouch driver API in the kernel is refined, but there are
a few examples of protocol B drivers already.

Now we're done with the kernel :).

In userspace, Ubuntu has gone two routes. The first route, which shipped
in Ubuntu 10.10 (Maverick), can be described as a glorified hack :). It
presents gestures through the X window system if you use our patches to
add gesture support to the X evdev input module and the X server. On top
of that, you need utouch-grail and utouch-geis libraries to interpret
and use gestures.

In Ubuntu 11.04 (Natty) we will be integrating a pre-release
implementation of XInput 2.1. This will include full multitouch support
integrated into the X server. It will still look like a patch against X
evdev and X server, since it's prerelease, but it will provide real
multitouch support to client applications through the XInput API. We
will be modifying utouch-grail and utouch-geis to use the new XInput MT
interface to recognize gestures.

As you can see, there are a lot of moving parts here under rapid
development. We are targeting Ubuntu alone for shipping, though we are
participating in upstream projects to get all the ground work laid for
future upstream releases as well. Thus, you may have issues trying to
get all this to work in a different distribution right now. You probably
will have to do quite a bit of backporting and testing work to ensure
it's working properly.

I hope that helps! Feel free to pepper us with more questions as necessary.

Thanks!

-- Chase



Follow ups

References