[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