I'm now considering a yet different approach that's more along the lines
how digitizers (tablets) are handled:
BTN_TOOL_FINGER
BTN_TOOL_DOUBLETAP
BTN_TOOL_TRIPLETAP
for telling what the user used to point ... and
ABS_AREA or ABS_WIDTH or ABS_TOOL_WIDTH
to tell how the touched area is large.
> The important part is that the driver must know when there is added or
> removed a finger as touchpads sends the avarage positions of the fingers.
> Adding or removing a finger moves the mouse if the driver does nothing.
>
> There are other questions, if the API is to be used by a general user
> touchpad driver.
I hope it could, but not many touchpad drivers report all the stuff they
know like the Synaptics ones. Most do all the processing straight
within the pad processor.
> Is there a way to communicate the resolution of the x,y
> and z coordinates to the user driver?
Not at the moment. We could add physical range values it if it becomes
needed, though. From this the userspace portion of the driver can
compute the resolution.
> (not only min/max). How do I tell
> that the y coordinate is reversed (gliderpointer) ?
The direction of the coordinates is defined to be constant in the API,
so you should reverse it in the driver if you detect a pad with a
reversed Y coordinate.
-- Vojtech Pavlik SuSE Labs, SuSE CR - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/