All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chase Douglas <chasedouglas@gmail.com>
To: Henrik Rydberg <rydberg@euromail.se>
Cc: "Thorsten Wissmann" <re06huxa@stud.informatik.uni-erlangen.de>,
	"Chris Bagwell" <chris@cnpbagwell.com>,
	linux-input@vger.kernel.org,
	"Maximilian Krüger" <maxfragg@gmail.com>,
	i4passt@lists.informatik.uni-erlangen.de
Subject: Re: Mixed "pen" and multitouch input devices
Date: Mon, 19 Mar 2012 08:32:45 -0700	[thread overview]
Message-ID: <4F67519D.7050206@gmail.com> (raw)
In-Reply-To: <20120319063915.GA15489@polaris.bitmath.org>

On 03/18/2012 11:39 PM, Henrik Rydberg wrote:
>> The proper way to send events through evdev when there are two different
>> "tools" (pen and touch) is to use BTN_TOOL_*. In your example above, it
>> would be:
>>
>> # finger touch (Note lack of tool, it's assumed to be finger)
>>     ABS_MT_SLOT 0
>>     ABS_MT_TRACKING_ID 42
>>     ABS_MT_POSITION_X finger_x
>>     ABS_MT_POSITION_Y finger_y
>>     SYN_MT_REPORT
>>     ABS_X finger_x
>>     ABS_Y finger_y
>>     SYN_REPORT
>> # finger release
>>     ABS_MT_SLOT 0
>>     ABS_MT_TRACKING_ID -1
>>     SYN_REPORT
>> # pen motion
>>     BTN_TOOL_PEN 1
>>     ABS_X pen_x
>>     ABS_Y pen_y
>>     SYN_REPORT
>> # finger touch begin
>>     ABS_MT_SLOT 0
>>     ABS_MT_TRACKING_ID 42
>>     ABS_MT_POSITION_X finger_x
>>     ABS_MT_POSITION_Y finger_y
>>     SYN_MT_REPORT
>>     BTN_TOOL_PEN 0
>>     ABS_X finger_x
>>     ABS_Y finger_y
>>     SYN_REPORT
>> etc.
>>
>> Then, xf86-input-evdev ignores ABS_{X,Y} events when there is no
>> BTN_TOOL_* active.
> 
> On the subject how pen and touch could work going forward, the MT
> protocol is prepared to deal with tool type per slot. It makes a lot
> of sense to move away from the above example, towards a fully parallel
> representation of pen and touch data. Today's multitouch interfaces
> are really tremendously restrictive; I am looking forward to the day
> when one does not need to worry about touching or resting on a surface
> in order to operate it.
> 
> In short, why not make xf86-input-evdev aware of MT_TOOL_TYPE?

There's no reason it can't be made aware. The question is whether you
want to create separate X input devices, or annotate events with the
tool type. No one has really bothered looking into it outside of wacom
devices, but my understanding is that wacom is a big special cased
situation due to historical reasons anyway.

If we merely annotate events by setting valuator values, that's a
trivial change that may even be already supported out of the box.
Splitting the evdev device into multiple X input devices is also
possible, since xf86-input-wacom does it, but would require a large
refactoring of xf86-input-evdev.

-- Chase

  reply	other threads:[~2012-03-19 15:32 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-15 15:52 Mixed "pen" and multitouch input devices Thorsten Wissmann
2012-03-15 17:27 ` Chris Bagwell
2012-03-15 17:56   ` Thorsten Wissmann
2012-03-15 18:29     ` Chase Douglas
2012-03-16  1:52       ` Thorsten Wissmann
2012-03-16  2:03         ` Chase Douglas
2012-03-16  2:44           ` Thorsten Wissmann
2012-03-16  2:57           ` Chris Bagwell
2012-03-16 17:33             ` Thorsten Wissmann
2012-03-16 20:27               ` Chase Douglas
2012-03-19  6:39                 ` Henrik Rydberg
2012-03-19 15:32                   ` Chase Douglas [this message]
2012-03-20  1:04                     ` Chris Bagwell

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=4F67519D.7050206@gmail.com \
    --to=chasedouglas@gmail.com \
    --cc=chris@cnpbagwell.com \
    --cc=i4passt@lists.informatik.uni-erlangen.de \
    --cc=linux-input@vger.kernel.org \
    --cc=maxfragg@gmail.com \
    --cc=re06huxa@stud.informatik.uni-erlangen.de \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.