Re: [PATCH 09/12] Input: synaptics - add image sensor support
From: Henrik Rydberg <hidden>
Date: 2011-07-06 20:18:51
Also in:
linux-input
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.
quoted
quoted
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 ;-)
quoted
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