The profile is what is still special about those two, the filter itself does
the same as the default filter (calculate velocity, calculate accel factor,
apply to delta).

Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
---
 src/filter.c | 80 ++++++------------------------------------------------------
 1 file changed, 7 insertions(+), 73 deletions(-)

diff --git a/src/filter.c b/src/filter.c
index 5da8136..abbfb48 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -403,9 +403,9 @@ calculate_acceleration_factor(struct pointer_accelerator 
*accel,
  * motion
  */
 static struct normalized_coords
-accelerator_filter(struct motion_filter *filter,
-                  const struct device_float_coords *unaccelerated,
-                  void *data, uint64_t time)
+accelerator_filter_generic(struct motion_filter *filter,
+                          const struct device_float_coords *unaccelerated,
+                          void *data, uint64_t time)
 {
        struct pointer_accelerator *accel =
                (struct pointer_accelerator *) filter;
@@ -446,72 +446,6 @@ accelerator_filter_noop(struct motion_filter *filter,
        return normalize_for_dpi(unaccelerated, accel->dpi);
 }
 
-/**
- * Low-dpi filter that handles events from devices with less than the
- * default dpi.
- *
- * @param filter The acceleration filter
- * @param unaccelerated The raw delta in the device's dpi
- * @param data Caller-specific data
- * @param time Current time in µs
- *
- * @return An accelerated tuple of coordinates representing normalized
- * motion
- */
-static struct normalized_coords
-accelerator_filter_low_dpi(struct motion_filter *filter,
-                          const struct device_float_coords *unaccelerated,
-                          void *data, uint64_t time)
-{
-       struct pointer_accelerator *accel =
-               (struct pointer_accelerator *) filter;
-       double accel_value; /* unitless factor */
-       struct normalized_coords accelerated;
-
-       /* Input is already in device-native DPI, nothing else needed */
-       accel_value = calculate_acceleration_factor(accel,
-                                                   unaccelerated,
-                                                   data,
-                                                   time);
-       accelerated.x = accel_value * unaccelerated->x;
-       accelerated.y = accel_value * unaccelerated->y;
-
-       return accelerated;
-}
-
-/**
- * Custom filter that applies the trackpoint's constant acceleration, if any.
- *
- * @param filter The acceleration filter
- * @param unaccelerated The raw delta in the device's dpi
- * @param data Caller-specific data
- * @param time Current time in µs
- *
- * @return An accelerated tuple of coordinates representing normalized
- * motion
- */
-static struct normalized_coords
-accelerator_filter_trackpoint(struct motion_filter *filter,
-                             const struct device_float_coords *unaccelerated,
-                             void *data, uint64_t time)
-{
-       struct pointer_accelerator *accel =
-               (struct pointer_accelerator *) filter;
-       double accel_value; /* unitless factor */
-       struct normalized_coords accelerated;
-
-       /* Nothing special to do here, data is already in device dpi */
-       accel_value = calculate_acceleration_factor(accel,
-                                                   unaccelerated,
-                                                   data,
-                                                   time);
-
-       accelerated.x = accel_value * unaccelerated->x;
-       accelerated.y = accel_value * unaccelerated->y;
-
-       return accelerated;
-}
-
 static struct normalized_coords
 accelerator_filter_x230(struct motion_filter *filter,
                        const struct device_float_coords *raw,
@@ -943,7 +877,7 @@ trackpoint_accel_profile(struct motion_filter *filter,
 
 struct motion_filter_interface accelerator_interface = {
        .type = LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE,
-       .filter = accelerator_filter,
+       .filter = accelerator_filter_generic,
        .filter_constant = accelerator_filter_noop,
        .restart = accelerator_restart,
        .destroy = accelerator_destroy,
@@ -990,7 +924,7 @@ create_pointer_accelerator_filter_linear(int dpi)
 
 struct motion_filter_interface accelerator_interface_low_dpi = {
        .type = LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE,
-       .filter = accelerator_filter_low_dpi,
+       .filter = accelerator_filter_generic,
        .filter_constant = accelerator_filter_noop,
        .restart = accelerator_restart,
        .destroy = accelerator_destroy,
@@ -1014,7 +948,7 @@ create_pointer_accelerator_filter_linear_low_dpi(int dpi)
 
 struct motion_filter_interface accelerator_interface_touchpad = {
        .type = LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE,
-       .filter = accelerator_filter,
+       .filter = accelerator_filter_generic,
        .filter_constant = touchpad_constant_filter,
        .restart = accelerator_restart,
        .destroy = accelerator_destroy,
@@ -1076,7 +1010,7 @@ create_pointer_accelerator_filter_lenovo_x230(int dpi)
 
 struct motion_filter_interface accelerator_interface_trackpoint = {
        .type = LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE,
-       .filter = accelerator_filter_trackpoint,
+       .filter = accelerator_filter_generic,
        .filter_constant = accelerator_filter_noop,
        .restart = accelerator_restart,
        .destroy = accelerator_destroy,
-- 
2.9.3

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to