History log of /haiku/src/add-ons/kernel/bus_managers/ps2/ps2_alps.h
Revision Date Author Comments
# 5e596efe 15-Jul-2022 Augustin Cavalier <waddlesplash@gmail.com>

Refactor touchpad movement generation by migrating MovementMaker to userland.

This considerably overhauls touchpad event generation, simplifying and
cleaning it up considerably:

* Return the touchpad specifications through the MS_IS_TOUCHPAD ioctl.

* There is now a dedicated MS_READ_TOUCHPAD ioctl, as touchpads
can either return touchpad_movement structures or mouse_movement
ones depending on what mode they are operating in.

* Event repeating on timeouts is now handled in MovementMaker and
the input_server control thread, so MS_READ_TOUCHPAD takes
a timeout value. This means we can drop all the EventProducers.

* Use the real floating-point math functions in MovementMaker now
that we are running in userland.

* Drop unused structures, constants, headers, and other things
related to touchpad support.

Change-Id: I28cdb28e4100393a9338a8ebb865573cec13fc1e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5455
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 4c78b73b 22-Sep-2013 Jérôme Duval <jerome.duval@gmail.com>

ps2: added initial support for elantech pads.

* also added a license to ps2_alps.h
* added ps2_dev_sliced_command()
* moved some ps2 commands definitions to ps2_defs.h


# 9b35c5d3 06-Apr-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Generate helper events for ALPS touchpads. This is needed for tap drag and edge motion. This emulates the synaptics touchpad somehow. For example, we need more events to decide if a tap is a
simple click or becomes a tap drag. ALPS does not send these events.
- Enable ALPS.
- Force const edge motion speed. Synaptics sends events with a certain frequency ALPS don't. Even worse ALPS stops sending events durring a edge motion when you don't move your finger. Current
speed is 200 pixel/s. In theory synaptics has different event frequency modes which would result in a different edge motion speed in the previous approach. Please check if synaptics works/speed is correct. Will try to get a synaptics laptop for testing...
- fix class variable names.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41190 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c152c70b 30-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- ALPS and synaptics are sharing the same code to generate mouse events now. The movement generation is calibrated on the synaptics touchpad, though.
ALPS movements are fine now, hope the synaptics is still working. Please test! There are still some leftovers form switching from a c struct to a c++
class will fix that later.
- Support ALPS devices with passthrough.
- ALPS is still disabled because tap and edge motion is not working yet. The
problem is that synaptics generates more helper events which makes this a lot
easier to implement. My plan is to emulate this events to imitate the synatics touchpad.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41140 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e637ccf5 28-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Reapply the ps2 cpp patch. Thanks Axel.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41134 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 79bdca06 28-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Revert r41129 to get history back.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 278a2b8a 27-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Making the ps2 busmanager c++.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b78920b3 27-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Work in progress on a ALPS touchpad driver. The driver is roughly working but disabled at the moment. Its
more or less a copy of the synaptics driver. Next step is to refactor the movement generation and share the
code with the synaptics driver.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41124 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4c78b73b8a5411d19320e31510654e42815178db 22-Sep-2013 Jérôme Duval <jerome.duval@gmail.com>

ps2: added initial support for elantech pads.

* also added a license to ps2_alps.h
* added ps2_dev_sliced_command()
* moved some ps2 commands definitions to ps2_defs.h


# 9b35c5d38ddff53d71b9f6b0644704b87c5ad9bb 06-Apr-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Generate helper events for ALPS touchpads. This is needed for tap drag and edge motion. This emulates the synaptics touchpad somehow. For example, we need more events to decide if a tap is a
simple click or becomes a tap drag. ALPS does not send these events.
- Enable ALPS.
- Force const edge motion speed. Synaptics sends events with a certain frequency ALPS don't. Even worse ALPS stops sending events durring a edge motion when you don't move your finger. Current
speed is 200 pixel/s. In theory synaptics has different event frequency modes which would result in a different edge motion speed in the previous approach. Please check if synaptics works/speed is correct. Will try to get a synaptics laptop for testing...
- fix class variable names.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41190 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c152c70b467536ee3e54c43674f70e1f849c4532 30-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- ALPS and synaptics are sharing the same code to generate mouse events now. The movement generation is calibrated on the synaptics touchpad, though.
ALPS movements are fine now, hope the synaptics is still working. Please test! There are still some leftovers form switching from a c struct to a c++
class will fix that later.
- Support ALPS devices with passthrough.
- ALPS is still disabled because tap and edge motion is not working yet. The
problem is that synaptics generates more helper events which makes this a lot
easier to implement. My plan is to emulate this events to imitate the synatics touchpad.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41140 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e637ccf5c1c22c87fa0cb695a2d62d6ee1d92308 28-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Reapply the ps2 cpp patch. Thanks Axel.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41134 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 79bdca06506e69ebd8d9a1eecc5a246b21286472 28-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Revert r41129 to get history back.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 278a2b8aaa75b3252ca8de1eef36ca6afc836ac1 27-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Making the ps2 busmanager c++.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b78920b3f15866e9e833be60d1a57b6ecdf4dbee 27-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Work in progress on a ALPS touchpad driver. The driver is roughly working but disabled at the moment. Its
more or less a copy of the synaptics driver. Next step is to refactor the movement generation and share the
code with the synaptics driver.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41124 a95241bf-73f2-0310-859d-f6bbb57e9c96