lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100524061503.GA20447@barra.redhat.com>
Date:	Mon, 24 May 2010 16:15:03 +1000
From:	Peter Hutterer <peter.hutterer@...-t.net>
To:	Ping Cheng <pinglinux@...il.com>
Cc:	Henrik Rydberg <rydberg@...omail.se>,
	Rafi Rubin <rafi@...s.upenn.edu>,
	Dmitry Torokhov <dmitry.torokhov@...il.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	linux-input@...r.kernel.org, linux-kernel@...r.kernel.org,
	Mika Kuoppala <mika.kuoppala@...ia.com>,
	Benjamin Tissoires <tissoire@...a.fr>,
	Stephane Chatty <chatty@...c.fr>,
	Michael Poole <mdpoole@...ilus.org>
Subject: Re: [PATCH 2/2] input: mt: Document the MT event slot protocol (rev2)

On Sun, May 23, 2010 at 10:48:35PM -0700, Ping Cheng wrote:
> On Sun, May 23, 2010 at 10:25 PM, Peter Hutterer
> <peter.hutterer@...-t.net> wrote:
> > On Fri, May 21, 2010 at 11:25:41PM +0200, Henrik Rydberg wrote:
> >> Ping Cheng wrote:
> >> > On Fri, May 21, 2010 at 8:19 AM, Rafi Rubin <rafi@...s.upenn.edu> wrote:
> >> [...]
> >> >> Ping: please confirm, are you actually talking about each finger simultaneously sending multiple positions?
> >> >
> >> > You are definitely on the right track.  The fingers/touch objects can
> >> > be represented two-dimensionally (x,y) instead of one-dimensionally
> >> > (ABS_MT_TRACKING_ID).  I think we can survive with the current MT_BLOB
> >> > definition although some optimization would be helpful, especially for
> >> > filtering. For the sake of Henrik great effort, I'd like to see his
> >> > current patchset gets in the tree before we start another round of
> >> > "suggestions".
> >> >
> >> > Thank you for asking.
> >>
> >> Regarding blobs, I confused myself yesterday. The original intention of the blob
> >>  id was in fact to be able to "paint" more generic contact forms. However, no
> >> driver has come close to doing this yet, so it has gotten close to no attention.
> >> Now, to address the question of how to communicate more elaborate contact forms,
> >> it seems one can combine the two goals "one position per slot" and "multiple
> >> positions per contact" by simply repeating the same tracking id for a set of
> >> slots, like this:
> >>
> >> ABS_SLOT 0
> >> ABS_MT_TRACKING_ID 14
> >> ABS_MT_POSITION_X x[0]
> >> ABS_MT_POSITION_Y y[0]
> >> ABS_SLOT 1
> >> ABS_MT_TRACKING_ID 14
> >> ABS_MT_POSITION_X x[1]
> >> ABS_MT_POSITION_Y y[1]
> >> ABS_SLOT 2
> >> ABS_MT_TRACKING_ID 14
> >> ABS_MT_POSITION_X x[2]
> >> ABS_MT_POSITION_Y y[2]
> >>
> >> Not all too different from what you suggested, and there is no blob id involved
> >> at all. And yes, it would require additional parsing power at the user end.
> >> Something for later.
> >
> > This is confusing me now :)
> >
> > How would a device get multiple x/y coordinates for a single contact? I
> > could understand a range of coordinates but that's what we have the
> > ABS_MT_WIDTH_MAJOR/MINOR for. If a touchpoint sends two different x/y
> > coordinates, wouldn't that be two touchpoints, tracked individually and thus
> > with a different tracking ID?
> >
> > I read the example above as _the_ example for using blob IDs to combine
> > multiple contacts into one semantic contact.
> 
> As Henrik pointed out, the current BLOB format is for "more generic
> contact forms", such as rectangles or ellipses.  They are special
> blobs. A generic (true) blob doesn't have to have a regular shape.  It
> is most likely in an irregular shape. They would be represented in an
> array of points/contacts/(x,y)s,  whichever term works for you :).

Hmm. I always assumed blob is for irregular shapes, and rectangles or others
are just subsets of irregular shapes (with slightly less 'ir', maybe).
So what would be the difference between these two event streams?

ABS_SLOT 0
ABS_MT_TRACKING_ID 14
ABS_MT_POSITION_X x[0]
ABS_MT_POSITION_Y y[0]
ABS_SLOT 1
ABS_MT_TRACKING_ID 14
ABS_MT_POSITION_X x[1]
ABS_MT_POSITION_Y y[1]


ABS_SLOT 0
ABS_MT_TRACKING_ID 14
ABS_MT_BLOB_ID 1
ABS_MT_POSITION_X x[0]
ABS_MT_POSITION_Y y[0]
ABS_SLOT 1
ABS_MT_BLOB_ID 1
ABS_MT_TRACKING_ID 15
ABS_MT_POSITION_X x[1]
ABS_MT_POSITION_Y y[1]

Cheers,
  Peter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ