[PATCH libinput 10/16] filter: split calculating the accel factor into a helper function
Peter Hutterer
peter.hutterer at who-t.net
Tue Aug 4 23:32:39 PDT 2015
No functional changes.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
src/filter.c | 35 +++++++++++++++++++++++++----------
1 file changed, 25 insertions(+), 10 deletions(-)
diff --git a/src/filter.c b/src/filter.c
index 828d6b6..68f1786 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -266,6 +266,27 @@ calculate_acceleration(struct pointer_accelerator *accel,
return factor; /* unitless factor */
}
+static inline double
+calculate_acceleration_factor(struct pointer_accelerator *accel,
+ const struct normalized_coords *unaccelerated,
+ void *data,
+ uint64_t time)
+{
+ double velocity; /* units/us */
+ double accel_factor;
+
+ feed_trackers(accel, unaccelerated, time);
+ velocity = calculate_velocity(accel, time);
+ accel_factor = calculate_acceleration(accel,
+ data,
+ velocity,
+ accel->last_velocity,
+ time);
+ accel->last_velocity = velocity;
+
+ return accel_factor;
+}
+
static struct normalized_coords
accelerator_filter(struct motion_filter *filter,
const struct normalized_coords *unaccelerated,
@@ -273,7 +294,6 @@ accelerator_filter(struct motion_filter *filter,
{
struct pointer_accelerator *accel =
(struct pointer_accelerator *) filter;
- double velocity; /* units/us */
double accel_value; /* unitless factor */
struct normalized_coords accelerated;
struct normalized_coords unnormalized;
@@ -285,19 +305,14 @@ accelerator_filter(struct motion_filter *filter,
unnormalized.x = unaccelerated->x * dpi_factor;
unnormalized.y = unaccelerated->y * dpi_factor;
- feed_trackers(accel, &unnormalized, time);
- velocity = calculate_velocity(accel, time);
- accel_value = calculate_acceleration(accel,
- data,
- velocity,
- accel->last_velocity,
- time);
+ accel_value = calculate_acceleration_factor(accel,
+ &unnormalized,
+ data,
+ time);
accelerated.x = accel_value * unnormalized.x;
accelerated.y = accel_value * unnormalized.y;
- accel->last_velocity = velocity;
-
return accelerated;
}
--
2.4.3
More information about the wayland-devel
mailing list