From: Mohamed Ikbel Boulabiar <boulabiar@gmail.com>
To: Henrik Rydberg <rydberg@euromail.se>
Cc: "Stéphane Chatty" <chatty@enac.fr>,
"Jiri Kosina" <jkosina@suse.cz>,
"Rafi Rubin" <rafi@seas.upenn.edu>,
linux-input@vger.kernel.org, dmitry.torokhov@gmail.com
Subject: Re: [PATCH] hid-ntrig.c Multitouch cleanup and fix
Date: Tue, 9 Mar 2010 23:42:34 +0100 [thread overview]
Message-ID: <45cc95261003091442t70d08311u13642aac7bc4f3f3@mail.gmail.com> (raw)
In-Reply-To: <4B96CAD4.4010407@euromail.se>
On Tue, Mar 9, 2010 at 11:25 PM, Henrik Rydberg <rydberg@euromail.se> wrote:
>> One would be separation of concerns. If I'm interested in single touch
>> events, I'd be better off with no "multitouch noise". If I'm interested
>> in low level events, I'd be better off without the interference created
>> by all sorts of "clever" event emulation in drivers. An easy way to do
>> this is to have a different input node for each protocol.
>
> Keeping backward compatibility with single-touch userland does not really
> clutter the driver -- adding single-touch events to a clean multi-touch driver
> is just a handful of lines.
>
> [snip]
>
>> On another note, having multiple input nodes is a relevant question when
>> dealing with multitouch anyway. Let me take an example: consider two
>> users, each interacting with their own application in its own window but
>> on the same display. Now, consider these two input possibilities: either
>> each has their own mouse, or they both use the same dual-touch panel. In
>> the first case, each app can open its own input node; in the second,
>> they need to share the same device and perform some filtering to extract
>> the events they want (user1 or user2). The symmetry breaking between the
>> two situations is not satisfactory: you need to change the code in the
>> apps.
>
> Symmetry is also restored by passing all single-input devices as MT packets.
>
>> With this regard, I am a big fan of the idea of having hierarchical
>> devices, just like with have hierarchical file systems. Each finger on
>> the dual-touch panel would be a device, child of the panel device. Each
>> would be equivalent to a mouse, and voila, the symmetry is restored.
>> Conceptually, saying (panel/finger1, any event) or (panel, finger1
>> events) are equivalent; but in the first case the routing is done by the
>> OS and in the second case it has to be done by the app, which breaks
>> reusability. There are other interesting perspectives, but I don't want
>> to get carried away too much.
>
> A hierarchy is imposing an unnecessary restriction on the graph of possible
> relations between point devices. Consider for instance the case of two people,
> each with one finger on the panel. The hierarchy says panel-person1-finger1 and
> panel-person2-finger1. Now have them move close enough for the fingers to touch.
> The hierarchy now says panel-person-(finger1, finger2). Symmetry breaking once more.
>
> The main point here is that however the data reaches userland, it will have to
> be processed intelligibly and collectively. The point of processing could be an
> MT X Driver, it could be some other input section, but it is has to be done
> somewhere.
>
> Henrik
The hierarchy applied on multitouch isn't the best example to prove
benefits of it.
Hierarchy is useful with some complex input devices that have many
axes, many buttons some accelerometers, but that are hierarchical from
the source (integrality/separability ?).
Then providing them as hierarchy can be useful.
For multitouch devices, we don't need to make separation inside the
multitouch protocol itself even for "simpler" devices like "double
touch".
The solution maybe to have other handlers to show virtual hierarchical
devices in another virtual devices folder in addition to the old way.
The handler read from the usual device file and provide other sources.
Kernel modules will be then simple providing necessary input. And
complex handling will be in an additional layer.
User then will chose from where read the input : the old way or the
dynamic with handler special ways.
It should not also be in X.
If things aren't in the kernel, they shouldn't so be in X by obligation.
ik.
next prev parent reply other threads:[~2010-03-09 22:42 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-12 0:19 [PATCH 1/4] HID: hid-ntrig add multi input quirk and clean up Rafi Rubin
2010-02-12 0:19 ` [PATCH 2/4] hid-ntrig.c: removed unnecessary tool switching Rafi Rubin
2010-02-12 0:19 ` [PATCH 3/4] hid-ntrig.c Split multi and single touch Rafi Rubin
2010-02-12 0:19 ` [PATCH 4/4] hid-ntrig: Contact tracking Rafi Rubin
2010-02-12 0:42 ` [PATCH 3/4] hid-ntrig.c Split multi and single touch Dmitry Torokhov
2010-02-12 3:10 ` Rafi Rubin
2010-02-12 8:09 ` Dmitry Torokhov
2010-02-12 19:56 ` Rafi Rubin
2010-02-12 10:41 ` Jiri Kosina
2010-02-12 0:36 ` [PATCH 1/4] HID: hid-ntrig add multi input quirk and clean up Dmitry Torokhov
2010-02-12 0:45 ` Rafi Rubin
2010-02-12 1:03 ` Rafi Rubin
2010-02-12 1:20 ` Dmitry Torokhov
2010-02-12 0:37 ` Rafi Rubin
2010-02-12 3:14 ` Rafi Rubin
2010-02-12 3:14 ` [PATCH 2/4] hid-ntrig.c: removed unnecessary tool switching Rafi Rubin
2010-02-12 3:14 ` [PATCH 3/4] hid-ntrig.c Split multi and single touch Rafi Rubin
2010-02-12 3:14 ` [PATCH 4/4] hid-ntrig: Contact tracking Rafi Rubin
2010-02-20 8:29 ` Mohamed Ikbel Boulabiar
[not found] ` <45cc95261002200025m378e1a80rec09bde5673a6060@mail.gmail.com>
2010-02-20 17:48 ` Rafi Rubin
2010-02-12 8:13 ` [PATCH 3/4] hid-ntrig.c Split multi and single touch Dmitry Torokhov
2010-02-12 23:16 ` Rafi Rubin
2010-02-13 2:13 ` [PATCH] hid-ntrig.c Multitouch cleanup and fix Rafi Rubin
2010-02-13 2:24 ` Rafi Rubin
2010-02-16 12:50 ` Jiri Kosina
2010-03-09 21:01 ` Henrik Rydberg
2010-03-09 21:17 ` Rafi Rubin
2010-03-09 21:19 ` Jiri Kosina
2010-03-09 22:03 ` Stéphane Chatty
2010-03-09 22:25 ` Henrik Rydberg
2010-03-09 22:42 ` Mohamed Ikbel Boulabiar [this message]
2010-03-09 23:08 ` Henrik Rydberg
2010-03-09 23:17 ` Dmitry Torokhov
2010-03-09 23:26 ` Henrik Rydberg
2010-03-11 4:30 ` Peter Hutterer
2010-03-11 5:36 ` Mohamed Ikbel Boulabiar
2010-03-11 6:25 ` Peter Hutterer
2010-03-11 9:42 ` Stéphane Chatty
2010-03-09 22:27 ` Dmitry Torokhov
2010-03-09 22:32 ` Rafi Rubin
2010-03-09 22:54 ` Stéphane Chatty
2010-03-09 22:12 ` Rafi Rubin
2010-03-09 22:39 ` Henrik Rydberg
2010-03-09 21:59 ` Henrik Rydberg
2010-03-09 22:11 ` Stéphane Chatty
2010-03-09 22:29 ` Henrik Rydberg
2010-03-09 22:44 ` Stéphane Chatty
2010-03-09 22:27 ` Rafi Rubin
2010-03-09 23:23 ` Henrik Rydberg
2010-03-09 23:38 ` Rafi Rubin
2010-03-09 23:42 ` Dmitry Torokhov
2010-03-10 0:32 ` Rafi Rubin
2010-03-10 3:47 ` Dmitry Torokhov
2010-03-10 4:40 ` Rafi Rubin
2010-03-10 8:38 ` [PATCH] hid: ntrig touch events rafi
2010-03-10 15:04 ` Jiri Kosina
2010-03-18 20:19 ` Rafi Rubin
2010-03-19 8:44 ` Jiri Kosina
2010-03-19 14:12 ` Rafi Rubin
2010-02-16 12:49 ` [PATCH 2/4] hid-ntrig.c: removed unnecessary tool switching Jiri Kosina
2010-02-12 3:15 ` [PATCH 1/4] HID: hid-ntrig add multi input quirk and clean up Rafi Rubin
2010-02-16 12:49 ` Jiri Kosina
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=45cc95261003091442t70d08311u13642aac7bc4f3f3@mail.gmail.com \
--to=boulabiar@gmail.com \
--cc=chatty@enac.fr \
--cc=dmitry.torokhov@gmail.com \
--cc=jkosina@suse.cz \
--cc=linux-input@vger.kernel.org \
--cc=rafi@seas.upenn.edu \
--cc=rydberg@euromail.se \
/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).