49efa33dd0
"Newer" synaptics touchpad support a new mode where they can report more information to the host. In this mode, there is a different packet format for tracking extra data from the touchpad, including a wheel encoder (mousewheel) if available, and multitouch finger tracking. This mode is documented in the Synaptics touchpad interfacing guide (Synaptics document 511-000275-01 Rev. B), but was not yet implemented in our driver. It should help with detecting multiple fingers, or finger position on clickpads to determine right or left click. This change implements the following items from the Synaptics interfacing guide: - Cleanup and clarify the code for features detection to properly report clickpads - Enable "extended W" mode if supported - Process extended W values 0 (mouse wheels, reported in the touchpad_event structure and could be used by input_server for scrolling), 1 (secondary finger), and 2 (finger count) - Fix handling of wValue, which is not always a finger width - Add handling of vValuen which indicates the finger width when wValue doesn't Overall, this should provide the movement_maker with a better picture of what's happening. Also improve tracing to show received packets and the corresponding WValue since that's an important value in identifying which type of packet it is. Unfortunately I currently don't have a laptop with synaptics touchpad to test this with. Change-Id: If334392f4eb2a146955f6c8c897f0ab64d79b8d9 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4425 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Reviewed-by: nephele <nep@packageloss.eu> |
||
---|---|---|
.. | ||
InputServerTypes.h | ||
kb_mouse_settings.h | ||
keyboard_mouse_driver.h | ||
shared_cursor_area.h | ||
touchpad_settings.h | ||
virtio_input_driver.h | ||
wacom_driver.h |