mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-01-10 06:50:17 +01:00
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:
parent
acb4168053
commit
3f53430ea1
2 changed files with 8 additions and 6 deletions
|
|
@ -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)
|
||||
|
|
|
|||
11
src/filter.c
11
src/filter.c
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue