[PATCH libinput] filter: rename all velocity-related bits to *velocity_ms*
Jonas Ådahl
jadahl at gmail.com
Mon Aug 3 19:48:19 PDT 2015
On Tue, Aug 04, 2015 at 10:05:10AM +1000, Peter Hutterer wrote:
> Everything in libinput is in µs now, make it clear that this is all in ms.
>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
We also have the "speed" in the profiles that are in units/ms but not
named accordingly. Also wonder why we have both "speed" and "velocity",
especially since we pass the velocity to a profile function, and then
the profile function calls it speed.
Jonas
> src/filter.c | 64 ++++++++++++++++++++++++++++++------------------------------
> src/filter.h | 2 +-
> 2 files changed, 33 insertions(+), 33 deletions(-)
>
> diff --git a/src/filter.c b/src/filter.c
> index 2506ee2..d9eb61d 100644
> --- a/src/filter.c
> +++ b/src/filter.c
> @@ -85,7 +85,7 @@ filter_get_speed(struct motion_filter *filter)
> * Pointer acceleration filter constants
> */
>
> -#define MAX_VELOCITY_DIFF 1 /* units/ms */
> +#define MAX_VELOCITY_DIFF_MS 1 /* units/ms */
> #define MOTION_TIMEOUT ms2us(1000)
> #define NUM_POINTER_TRACKERS 16
>
> @@ -101,8 +101,8 @@ struct pointer_accelerator {
>
> accel_profile_func_t profile;
>
> - double velocity; /* units/ms */
> - double last_velocity; /* units/ms */
> + double velocity_ms; /* units/ms */
> + double last_velocity_ms;/* units/ms */
> struct normalized_coords last;
>
> struct pointer_tracker *trackers;
> @@ -147,14 +147,14 @@ tracker_by_offset(struct pointer_accelerator *accel, unsigned int offset)
> }
>
> static double
> -calculate_tracker_velocity(struct pointer_tracker *tracker, uint64_t time)
> +calculate_tracker_velocity_ms(struct pointer_tracker *tracker, uint64_t time)
> {
> double tdelta = time - tracker->time + 1;
> return normalized_length(tracker->delta) / tdelta * 1000.0; /* units/ms */
> }
>
> static inline double
> -calculate_velocity_after_timeout(struct pointer_tracker *tracker)
> +calculate_velocity_ms_after_timeout(struct pointer_tracker *tracker)
> {
> /* First movement after timeout needs special handling.
> *
> @@ -167,18 +167,18 @@ calculate_velocity_after_timeout(struct pointer_tracker *tracker)
> * for really slow movements but provides much more useful initial
> * movement in normal use-cases (pause, move, pause, move)
> */
> - return calculate_tracker_velocity(tracker,
> - tracker->time + MOTION_TIMEOUT);
> + return calculate_tracker_velocity_ms(tracker,
> + tracker->time + MOTION_TIMEOUT);
> }
>
> static double
> -calculate_velocity(struct pointer_accelerator *accel, uint64_t time)
> +calculate_velocity_ms(struct pointer_accelerator *accel, uint64_t time)
> {
> struct pointer_tracker *tracker;
> - double velocity;
> + double velocity_ms;
> double result = 0.0;
> - double initial_velocity = 0.0;
> - double velocity_diff;
> + double initial_velocity_ms = 0.0;
> + double velocity_diff_ms;
> unsigned int offset;
>
> unsigned int dir = tracker_by_offset(accel, 0)->dir;
> @@ -192,11 +192,11 @@ calculate_velocity(struct pointer_accelerator *accel, uint64_t time)
> if (time - tracker->time > MOTION_TIMEOUT ||
> tracker->time > time) {
> if (offset == 1)
> - result = calculate_velocity_after_timeout(tracker);
> + result = calculate_velocity_ms_after_timeout(tracker);
> break;
> }
>
> - velocity = calculate_tracker_velocity(tracker, time);
> + velocity_ms = calculate_tracker_velocity_ms(tracker, time);
>
> /* Stop if direction changed */
> dir &= tracker->dir;
> @@ -204,19 +204,19 @@ calculate_velocity(struct pointer_accelerator *accel, uint64_t time)
> /* First movement after dirchange - velocity is that
> * of the last movement */
> if (offset == 1)
> - result = velocity;
> + result = velocity_ms;
> break;
> }
>
> - if (initial_velocity == 0.0) {
> - result = initial_velocity = velocity;
> + if (initial_velocity_ms == 0.0) {
> + result = initial_velocity_ms = velocity_ms;
> } else {
> /* Stop if velocity differs too much from initial */
> - velocity_diff = fabs(initial_velocity - velocity);
> - if (velocity_diff > MAX_VELOCITY_DIFF)
> + velocity_diff_ms = fabs(initial_velocity_ms - velocity_ms);
> + if (velocity_diff_ms > MAX_VELOCITY_DIFF_MS)
> break;
>
> - result = velocity;
> + result = velocity_ms;
> }
> }
>
> @@ -225,27 +225,27 @@ calculate_velocity(struct pointer_accelerator *accel, uint64_t time)
>
> static double
> acceleration_profile(struct pointer_accelerator *accel,
> - void *data, double velocity, uint64_t time)
> + void *data, double velocity_ms, uint64_t time)
> {
> - return accel->profile(&accel->base, data, velocity, time);
> + return accel->profile(&accel->base, data, velocity_ms, time);
> }
>
> static double
> calculate_acceleration(struct pointer_accelerator *accel,
> void *data,
> - double velocity,
> - double last_velocity,
> + double velocity_ms,
> + double last_velocity_ms,
> uint64_t time)
> {
> double factor;
>
> /* Use Simpson's rule to calculate the avarage acceleration between
> * the previous motion and the most recent. */
> - factor = acceleration_profile(accel, data, velocity, time);
> - factor += acceleration_profile(accel, data, last_velocity, time);
> + factor = acceleration_profile(accel, data, velocity_ms, time);
> + factor += acceleration_profile(accel, data, last_velocity_ms, time);
> factor += 4.0 *
> acceleration_profile(accel, data,
> - (last_velocity + velocity) / 2,
> + (last_velocity_ms + velocity_ms) / 2,
> time);
>
> factor = factor / 6.0;
> @@ -260,7 +260,7 @@ accelerator_filter(struct motion_filter *filter,
> {
> struct pointer_accelerator *accel =
> (struct pointer_accelerator *) filter;
> - double velocity; /* units/ms */
> + double velocity_ms; /* units/ms */
> double accel_value; /* unitless factor */
> struct normalized_coords accelerated;
> struct normalized_coords unnormalized;
> @@ -273,11 +273,11 @@ accelerator_filter(struct motion_filter *filter,
> unnormalized.y = unaccelerated->y * dpi_factor;
>
> feed_trackers(accel, &unnormalized, time);
> - velocity = calculate_velocity(accel, time);
> + velocity_ms = calculate_velocity_ms(accel, time);
> accel_value = calculate_acceleration(accel,
> data,
> - velocity,
> - accel->last_velocity,
> + velocity_ms,
> + accel->last_velocity_ms,
> time);
>
> accelerated.x = accel_value * unnormalized.x;
> @@ -285,7 +285,7 @@ accelerator_filter(struct motion_filter *filter,
>
> accel->last = unnormalized;
>
> - accel->last_velocity = velocity;
> + accel->last_velocity_ms = velocity_ms;
>
> return accelerated;
> }
> @@ -367,7 +367,7 @@ create_pointer_accelerator_filter(accel_profile_func_t profile,
> filter->base.interface = &accelerator_interface;
>
> filter->profile = profile;
> - filter->last_velocity = 0.0;
> + filter->last_velocity_ms = 0.0;
> filter->last.x = 0;
> filter->last.y = 0;
>
> diff --git a/src/filter.h b/src/filter.h
> index 617fab1..0480aea 100644
> --- a/src/filter.h
> +++ b/src/filter.h
> @@ -54,7 +54,7 @@ filter_get_speed(struct motion_filter *filter);
>
> typedef double (*accel_profile_func_t)(struct motion_filter *filter,
> void *data,
> - double velocity,
> + double velocity_ms,
> uint64_t time);
>
> struct motion_filter *
> --
> 2.4.3
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
More information about the wayland-devel
mailing list