Messages in this thread | | | From | "Henrik Rydberg" <> | Date | Wed, 6 Jul 2011 22:20:49 +0200 | Subject | Re: [PATCH 09/12] Input: synaptics - add image sensor support |
| |
> This should be pretty straightforward: > > num_fingers = calc_fingers_from_btn_tool(device); // via EVIOCGKEY > num_slots = get_number_of_slots(device); // EVIOCGABS > num_untracked_contacts = max(num_fingers - num_slots, 0);
Heh, I forgot we _do_ know in advance how many fingers are supported via BTN_TOOL_*. Ok, no more issues.
> > > Maybe we have different notions of what semi-MT property conveys? For me > > > semi-MT indicates that the device provides 2 coordinates for bounding > > > box. However if semi-MT is not set does not mean that the device > > > provides true tracking for all contacts, but only for advertised slots. > > > There still may be additional data transmitted. > > > > Yes, it seems we do have different assumptions here. The more reason > > to document it further. :-) > > I'll take patches ;)
And thou shalt receive them - some day ;-)
> > To me, it seems we do need a little bit of extra information to > > determine this new type of device. > > I think we already have all we need (see above).
I concur. So, to conclude:
a) The improved synaptics behavior can be achieved by simply using MT-B plus BTN_TOOL_*.
b) Userspace should check BTN_TOOL_* for any discrepancies between the maximum number of available slots (always two in this case) and the maximum number of fingers reported (BTN_TOOL_TRIPLETAP etc). Extra actions may then be taken to support more fingers than slots.
c) The semi-mt flag is only used to signal that the two points sent via MT-B are the corners of a bounding box.
Cheers, Henrik
| |