Hi Sung-Jin,

First of all, thanks for you review,

On Wed, 21 Sep 2011 21:02:21 +0900, Sung-Jin Park <sj76.p...@samsung.com> wrote 
:

> Hi,
> 
>  
> 
> I have several opinions about the code.
> 
> 
> 1. This can be hardware-dependent code.
> 
> There are two or more types Linux MT protocol. (You can see here
> <http://www.google.co.kr/url?q=http://www.mjmwired.net/kernel/Documentation/
> input/multi-touch-protocol.txt&sa=U&ei=BaV5Tqr5O-
> 3UmAWYhInLAQ&ved=0CBAQFjAA&sig2=U9xA2Bo40_i6yfBqEBgwLw&usg=AFQjCNFe7mFV5heDy
> IKS3IGHzr-0GFJ_eA> .)
> Protocol A, B and so on.
> 
> In system whose kernel uses MT protocol A, ABS_MT_TRACKING_ID event won¡¯t
> be made. 
> Then _ecore_mouse_move() won¡¯t be called in _ecore_x_input_handler() in
> your patch.

What you say is true, but not in this case. This implementation is for
the xorg-x11-drv-mtev driver, that uses the mtdev library
(http://bitmath.org/code/mtdev/). The mtdev library takes care of the
protocol abstraction and does finger tracking.

> 
> 
> 2. As you mentioned earlier in your mail, event for the first finger will
> be made twice.
> 
> When you move with the first finger, it makes MotionNotify and
> XI_MotionNotify for the same finger.
> Both events must be made and transferred via wire by Xserver at the same
> time.
> This can make overheads for transferring both X event and XI event between
> Xserver and application for the first finger.
> Besides in evas multi_down and multi_move callback, application must check
> deviceid everytime.
> 
> Multitouch device can be configured on X system in some ways.
> (1) Each finger can be configured as an XISlavePointer attached to a master
> pointer.
> (2) Each finger can also be configured as an XIFloatingSlave.
> (3) One finger can be configured as an XISlavePointer and the others can be
> XIFloatingSlave.
> I¡¯d like to recommend that you take 3rd configuration in the above ways.
> 
>  
> 
> First finger makes only X events as SlavePointer device.
> 
> The other fingers make XI events as FloatingSlave device.
> 
> Currently, ecore and evas code based on this configuration.
> 
> Application gets mouse event as the first finger and gets multi events as
> the other fingers.
> 
> Is there any difficulty to use the 3rd configuration in your platform ?
> 
>  
> 
> If you didn¡¯t float 2nd/3rd finger from master pointer, the fingers will
> make X events such as ButtonPress/ButtonRelease/MotionNotify.
> 
> For example, in a list widget in an application just gets X events, 2nd/3rd
> finger¡¯s movement will be affected.
> 
> How about your opinions ?
That would be ideal for our use case, but AFAIK, there's no way to have
multiple pointers in one X driver, nor control the type of pointer, ie
make it a SlavePointer or FloatingSlave (this could be done *after* the X
server is launched, but would require an additionnal program).

In its current form, Ecore_X's input support is MPX (Multi-pointer)
oriented. But having multiple pointers is quite different from supporting
multi-touch, and that's why XI2 is being reworked (see first email and
http://liveweb.waybackmachine.org/http://who-t.blogspot.com/2010/10/thoughts-on-linux-multitouch.html
(a bit outdated)).


Regards,

Anisse

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to