filter: pass trackers to calculate_velocity

So the function to calculate the velocity is easier to call from other sites.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2018-04-10 15:12:58 +10:00
parent acb4168053
commit 3f53430ea1
2 changed files with 8 additions and 6 deletions

View file

@ -81,6 +81,9 @@ feed_trackers(struct pointer_trackers *trackers,
struct pointer_tracker *
tracker_by_offset(struct pointer_trackers *trackers, unsigned int offset);
double
calculate_velocity(struct pointer_trackers *trackers, uint64_t time);
/* Convert speed/velocity from units/us to units/ms */
static inline double
v_us2ms(double units_per_us)

View file

@ -262,10 +262,9 @@ calculate_velocity_after_timeout(struct pointer_tracker *tracker,
* past, moving into a different direction or having too much of a velocity
* change between events.
*/
static double
calculate_velocity(struct pointer_accelerator *accel, uint64_t time)
double
calculate_velocity(struct pointer_trackers *trackers, uint64_t time)
{
struct pointer_trackers *trackers = &accel->trackers;
struct pointer_tracker *tracker;
double velocity;
double result = 0.0;
@ -277,7 +276,7 @@ calculate_velocity(struct pointer_accelerator *accel, uint64_t time)
/* Find least recent vector within a timelimit, maximum velocity diff
* and direction threshold. */
for (offset = 1; offset < accel->trackers.ntrackers; offset++) {
for (offset = 1; offset < trackers->ntrackers; offset++) {
tracker = tracker_by_offset(trackers, offset);
/* Bug: time running backwards */
@ -394,7 +393,7 @@ calculate_acceleration_factor(struct pointer_accelerator *accel,
double accel_factor;
feed_trackers(&accel->trackers, unaccelerated, time);
velocity = calculate_velocity(accel, time);
velocity = calculate_velocity(&accel->trackers, time);
accel_factor = calculate_acceleration(accel,
data,
velocity,
@ -546,7 +545,7 @@ accelerator_filter_x230(struct motion_filter *filter,
delta_normalized.y = unaccelerated.y;
feed_trackers(&accel->trackers, &delta_normalized, time);
velocity = calculate_velocity(accel, time);
velocity = calculate_velocity(&accel->trackers, time);
accel_factor = calculate_acceleration(accel,
data,
velocity,