From: Ping Cheng <pinglinux@gmail.com>
To: Henrik Rydberg <rydberg@euromail.se>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
Mika Kuoppala <mika.kuoppala@nokia.com>,
Peter Hutterer <peter.hutterer@who-t.net>,
Benjamin Tissoires <tissoire@cena.fr>,
Stephane Chatty <chatty@enac.fr>,
Rafi Rubin <rafi@seas.upenn.edu>,
Michael Poole <mdpoole@troilus.org>
Subject: Re: [PATCH 2/2] input: mt: Document the MT event slot protocol (rev2)
Date: Wed, 19 May 2010 15:43:32 -0700 [thread overview]
Message-ID: <AANLkTikpmYwEYh5Dh-p3478cDMVo9hXOsDkt54ltHW6J@mail.gmail.com> (raw)
In-Reply-To: <1274213429-22667-2-git-send-email-rydberg@euromail.se>
Hi Henrik,
I am trying to link the protocol to the actual multi-touch devices in
my "mind". Hope it helps you to point out the mismatch between my
imagination and the protocol. Please see details in line.
Ping
On Tue, May 18, 2010 at 1:10 PM, Henrik Rydberg <rydberg@euromail.se> wrote:
> This patch adds documentation for the SYN_MT_SLOT event and
> gives examples of how to use the event slot protocol.
Am I right in thinking that SYN_MT_SLOT represents to the actual touch
area/finger on the surface? There could be more than one (x,y) (a few
points that form an irregular shape) that represents one finger. The
following example shows that slot 0 (finger 1) touched three points on
the surface while slot 1 (finger 2) only has one point reported:
+ SYN_MT_SLOT 0
+ ABS_MT_TRACKING_ID 45
+ ABS_MT_POSITION_X x[0]
+ ABS_MT_POSITION_Y y[0]
+ ABS_MT_TRACKING_ID 46
+ ABS_MT_POSITION_X x[1]
+ ABS_MT_POSITION_Y y[1]
+ ABS_MT_TRACKING_ID 47
+ ABS_MT_POSITION_X x[2]
+ ABS_MT_POSITION_Y y[2]
+ SYN_MT_SLOT 1
+ ABS_MT_TRACKING_ID 30
+ ABS_MT_POSITION_X x[3]
+ ABS_MT_POSITION_Y y[3]
+ SYN_REPORT
If my assumption is correct, i.e., one slot can have more than one
point, I would think ABS_MT_TRACKING_ID may not have to be a required
entry inside SYN_MT_SLOT. To the user land clients/drivers,
SYN_MT_SLOT itself could serve as an ID. So, the following case is
also a type B ( we know there are two touch areas. But we don't keep
track of the points inside the areas):
+ SYN_MT_SLOT 0
+ ABS_MT_POSITION_X x[0]
+ ABS_MT_POSITION_Y y[0]
+ ABS_MT_POSITION_X x[1]
+ ABS_MT_POSITION_Y y[1]
+ ABS_MT_POSITION_X x[2]
+ ABS_MT_POSITION_Y y[2]
+ SYN_MT_SLOT 1
+ ABS_MT_POSITION_X x[3]
+ ABS_MT_POSITION_Y y[3]
+ SYN_REPORT
So, an EVIO for X driver to retrieve the number of SLOTs would be very
helpful. Something like the following would do the work:
input_set_abs_params(input_dev, ABS_MT_SLOT, 0, 12, 0, 0);
which tells the user land clients that they can expect up to 13 touch areas.
> +The main difference between the raw type A protocol and the higher level
> +type B slot protocol lies in the usage of identifiable contacts. The slot
> +protocol requires the use of the ABS_MT_TRACKING_ID,
With what I said above, I think ABS_MT_TRACKING_ID is not the unique
identifier for type B protocol. It is the fact that we can identify
individual touch areas and use ABS_MT_SLOT to report them that makes
it a type B event.
> ABS_MT_TRACKING_ID, either provided by the
> +hardware of computed from the raw data [5].
^^ or (is it?)
I agree with this ABS_MT_TRACKING_ID definition. I would think something like:
input_set_abs_params(input_dev, ABS_MT_TRACKING_ID, 0, 47, 0, 0);
which tells the clients that total of 48 points are tracked, would be helpful.
Another topic that may be irrelevant to this patch is the filter. With
the use of ABS_MT_TRACKING_ID, a filter can be applied to discard the
useless repeated points or less than a certain number of points
movement.
next prev parent reply other threads:[~2010-05-19 22:43 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-18 20:10 [PATCH] input: mt: Introduce MT event slots (rev 3) Henrik Rydberg
2010-05-18 20:10 ` [PATCH 2/2] input: mt: Document the MT event slot protocol (rev2) Henrik Rydberg
2010-05-19 2:37 ` Peter Hutterer
2010-05-19 12:12 ` Henrik Rydberg
2010-05-20 0:13 ` Peter Hutterer
2010-05-20 7:11 ` Dmitry Torokhov
2010-05-20 10:46 ` Henrik Rydberg
2010-05-20 10:40 ` Henrik Rydberg
2010-05-24 4:58 ` Peter Hutterer
2010-05-24 6:07 ` Ping Cheng
2010-05-24 10:03 ` Henrik Rydberg
2010-05-24 15:59 ` Dmitry Torokhov
2010-05-24 17:06 ` Ping Cheng
2010-05-24 17:21 ` Dmitry Torokhov
2010-05-24 17:33 ` Ping Cheng
2010-05-24 17:48 ` Henrik Rydberg
2010-05-24 18:04 ` Dmitry Torokhov
2010-05-24 19:19 ` Henrik Rydberg
2010-05-19 22:43 ` Ping Cheng [this message]
2010-05-19 23:34 ` Rafi Rubin
2010-05-20 0:13 ` Ping Cheng
2010-05-20 0:26 ` Rafi Rubin
2010-05-20 0:51 ` Ping Cheng
2010-05-20 1:03 ` Rafi Rubin
2010-05-20 4:18 ` Ping Cheng
2010-05-20 0:21 ` Peter Hutterer
2010-05-20 0:34 ` Rafi Rubin
2010-05-20 7:08 ` Henrik Rydberg
2010-05-20 22:19 ` Ping Cheng
2010-05-20 22:48 ` Henrik Rydberg
2010-05-21 3:35 ` Ping Cheng
2010-05-21 15:19 ` Rafi Rubin
2010-05-21 15:40 ` Ping Cheng
2010-05-21 21:25 ` Henrik Rydberg
2010-05-22 3:10 ` Ping Cheng
2010-05-24 5:25 ` Peter Hutterer
2010-05-24 5:48 ` Ping Cheng
2010-05-24 6:15 ` Peter Hutterer
2010-05-24 9:49 ` Henrik Rydberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=AANLkTikpmYwEYh5Dh-p3478cDMVo9hXOsDkt54ltHW6J@mail.gmail.com \
--to=pinglinux@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=chatty@enac.fr \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mdpoole@troilus.org \
--cc=mika.kuoppala@nokia.com \
--cc=peter.hutterer@who-t.net \
--cc=rafi@seas.upenn.edu \
--cc=rydberg@euromail.se \
--cc=tissoire@cena.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).