linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Henrik Rydberg <rydberg@euromail.se>
To: "Stéphane Chatty" <chatty@enac.fr>
Cc: 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, 09 Mar 2010 23:25:24 +0100	[thread overview]
Message-ID: <4B96CAD4.4010407@euromail.se> (raw)
In-Reply-To: <5423752A-3AE0-4848-9149-B0C01B0BCA39@enac.fr>

> 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


  reply	other threads:[~2010-03-09 22:25 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 [this message]
2010-03-09 22:42                           ` Mohamed Ikbel Boulabiar
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=4B96CAD4.4010407@euromail.se \
    --to=rydberg@euromail.se \
    --cc=chatty@enac.fr \
    --cc=dmitry.torokhov@gmail.com \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    --cc=rafi@seas.upenn.edu \
    /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).