From 87c88d6a8605654c1d29471c7f34804a35a25745 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 3 Jul 2014 15:32:40 +1000 Subject: [PATCH] filter: move the threshold/accel into the filter struct No functional changes, prep work for the config interface. Signed-off-by: Peter Hutterer Reviewed-by: Hans de Goede --- src/filter.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/filter.c b/src/filter.c index 12bf8f6a..5e627e1a 100644 --- a/src/filter.c +++ b/src/filter.c @@ -84,6 +84,9 @@ struct pointer_accelerator { struct pointer_tracker *trackers; int cur_tracker; + + double threshold; /* units/ms */ + double accel; /* unitless factor */ }; static void @@ -259,6 +262,9 @@ create_pointer_accelator_filter(accel_profile_func_t profile) calloc(NUM_POINTER_TRACKERS, sizeof *filter->trackers); filter->cur_tracker = 0; + filter->threshold = DEFAULT_THRESHOLD; + filter->accel = DEFAULT_ACCELERATION; + return &filter->base; } @@ -276,11 +282,15 @@ pointer_accel_profile_linear(struct motion_filter *filter, double speed_in, uint64_t time) { + struct pointer_accelerator *accel_filter = + (struct pointer_accelerator *)filter; + double s1, s2; - const int max_accel = DEFAULT_ACCELERATION; + const double max_accel = accel_filter->accel; /* unitless factor */ + const double threshold = accel_filter->threshold; /* units/ms */ s1 = min(1, speed_in * 5); - s2 = 1 + (speed_in - DEFAULT_THRESHOLD) * 1.1; + s2 = 1 + (speed_in - threshold) * 1.1; return min(max_accel, s2 > 1 ? s2 : s1); } -- 2.34.1