On Wed, Aug 05, 2015 at 04:32:30PM +1000, Peter Hutterer wrote: > This reverts commit 8a6825f1602aa9d9c4b29a83d296f55f68b316e0. > > Aside from introducing bugs, this doesn't really help with anything, it adds a > requirement to rename everything to make clear where we're using µs and where > we're using ms and that just clutters up the code. > > Signed-off-by: Peter Hutterer <[email protected]>
Acked-by: Jonas Ådahl <[email protected]> > --- > src/filter.c | 54 > +++++++++++++++++++++++++------------------------- > tools/ptraccel-debug.c | 4 ++-- > 2 files changed, 29 insertions(+), 29 deletions(-) > > diff --git a/src/filter.c b/src/filter.c > index e11d58a..b01b68a 100644 > --- a/src/filter.c > +++ b/src/filter.c > @@ -77,8 +77,8 @@ filter_get_speed(struct motion_filter *filter) > * Default parameters for pointer acceleration profiles. > */ > > -#define DEFAULT_THRESHOLD 0.4 /* in units/ms */ > -#define MINIMUM_THRESHOLD 0.2 /* in units/ms */ > +#define DEFAULT_THRESHOLD 0.0004 /* in units/us */ > +#define MINIMUM_THRESHOLD 0.0002 /* in units/us */ > #define DEFAULT_ACCELERATION 2.0 /* unitless factor */ > #define DEFAULT_INCLINE 1.1 /* unitless factor */ > > @@ -86,7 +86,7 @@ filter_get_speed(struct motion_filter *filter) > * Pointer acceleration filter constants > */ > > -#define MAX_VELOCITY_DIFF 1 /* units/ms */ > +#define MAX_VELOCITY_DIFF 0.001 /* units/us */ > #define MOTION_TIMEOUT ms2us(1000) > #define NUM_POINTER_TRACKERS 16 > > @@ -102,14 +102,14 @@ struct pointer_accelerator { > > accel_profile_func_t profile; > > - double velocity; /* units/ms */ > - double last_velocity; /* units/ms */ > + double velocity; /* units/us */ > + double last_velocity; /* units/us */ > struct normalized_coords last; > > struct pointer_tracker *trackers; > int cur_tracker; > > - double threshold; /* units/ms */ > + double threshold; /* units/us */ > double accel; /* unitless factor */ > double incline; /* incline of the function */ > > @@ -151,7 +151,7 @@ static double > calculate_tracker_velocity(struct pointer_tracker *tracker, uint64_t time) > { > double tdelta = time - tracker->time + 1; > - return normalized_length(tracker->delta) / tdelta * 1000.0; /* units/ms > */ > + return normalized_length(tracker->delta) / tdelta; /* units/us */ > } > > static inline double > @@ -221,7 +221,7 @@ calculate_velocity(struct pointer_accelerator *accel, > uint64_t time) > } > } > > - return result; /* units/ms */ > + return result; /* units/us */ > } > > static double > @@ -257,11 +257,11 @@ calculate_acceleration(struct pointer_accelerator > *accel, > static struct normalized_coords > accelerator_filter(struct motion_filter *filter, > const struct normalized_coords *unaccelerated, > - void *data, uint64_t time /* in us */) > + void *data, uint64_t time) > { > struct pointer_accelerator *accel = > (struct pointer_accelerator *) filter; > - double velocity; /* units/ms */ > + double velocity; /* units/us */ > double accel_value; /* unitless factor */ > struct normalized_coords accelerated; > struct normalized_coords unnormalized; > @@ -334,7 +334,7 @@ accelerator_set_speed(struct motion_filter *filter, > assert(speed >= -1.0 && speed <= 1.0); > > /* delay when accel kicks in */ > - accel_filter->threshold = DEFAULT_THRESHOLD - speed / 4.0; > + accel_filter->threshold = DEFAULT_THRESHOLD - speed / 4000.0; > if (accel_filter->threshold < MINIMUM_THRESHOLD) > accel_filter->threshold = MINIMUM_THRESHOLD; > > @@ -398,23 +398,23 @@ create_pointer_accelerator_filter(accel_profile_func_t > profile, > double > pointer_accel_profile_linear_low_dpi(struct motion_filter *filter, > void *data, > - double speed_in, /* in device units > (units/ms) */ > - uint64_t time /* in us */) > + double speed_in, /* in device units > (units/us) */ > + uint64_t time) > { > struct pointer_accelerator *accel_filter = > (struct pointer_accelerator *)filter; > > double s1, s2; > double max_accel = accel_filter->accel; /* unitless factor */ > - const double threshold = accel_filter->threshold; /* units/ms */ > + const double threshold = accel_filter->threshold; /* units/us */ > const double incline = accel_filter->incline; > double factor; > double dpi_factor = accel_filter->dpi_factor; > > max_accel /= dpi_factor; > > - s1 = min(1, 0.3 + speed_in * 10.0); > - s2 = 1 + (speed_in - threshold * dpi_factor) * incline; > + s1 = min(1, 0.3 + speed_in * 10000.0); > + s2 = 1 + (speed_in * 1000.0 - threshold * dpi_factor * 1000.0) * > incline; > > factor = min(max_accel, s2 > 1 ? s2 : s1); > > @@ -425,19 +425,19 @@ double > pointer_accel_profile_linear(struct motion_filter *filter, > void *data, > double speed_in, /* 1000-dpi normalized */ > - uint64_t time /* in us */) > + uint64_t time) > { > struct pointer_accelerator *accel_filter = > (struct pointer_accelerator *)filter; > > double s1, s2; > const double max_accel = accel_filter->accel; /* unitless factor */ > - const double threshold = accel_filter->threshold; /* units/ms */ > + const double threshold = accel_filter->threshold; /* units/us */ > const double incline = accel_filter->incline; > double factor; > > - s1 = min(1, 0.3 + speed_in * 10); > - s2 = 1 + (speed_in - threshold) * incline; > + s1 = min(1, 0.3 + speed_in * 10 * 1000.0); > + s2 = 1 + (speed_in * 1000.0 - threshold * 1000.0) * incline; > > factor = min(max_accel, s2 > 1 ? s2 : s1); > > @@ -446,9 +446,9 @@ pointer_accel_profile_linear(struct motion_filter *filter, > > double > touchpad_accel_profile_linear(struct motion_filter *filter, > - void *data, > - double speed_in, > - uint64_t time /* in us */) > + void *data, > + double speed_in, > + uint64_t time) > { > /* Once normalized, touchpads see the same > acceleration as mice. that is technically correct but > @@ -469,7 +469,7 @@ double > touchpad_lenovo_x230_accel_profile(struct motion_filter *filter, > void *data, > double speed_in, > - uint64_t time /* in us */) > + uint64_t time) > { > /* Keep the magic factor from touchpad_accel_profile_linear. */ > const double TP_MAGIC_SLOWDOWN = 0.4; > @@ -489,13 +489,13 @@ touchpad_lenovo_x230_accel_profile(struct motion_filter > *filter, > const double max_accel = accel_filter->accel * > TP_MAGIC_LOW_RES_FACTOR; /* unitless factor */ > const double threshold = accel_filter->threshold / > - TP_MAGIC_LOW_RES_FACTOR; /* units/ms */ > + TP_MAGIC_LOW_RES_FACTOR; /* units/us */ > const double incline = accel_filter->incline * TP_MAGIC_LOW_RES_FACTOR; > > speed_in *= TP_MAGIC_SLOWDOWN / TP_MAGIC_LOW_RES_FACTOR; > > - s1 = min(1, speed_in * 5); > - s2 = 1 + (speed_in - threshold) * incline; > + s1 = min(1, speed_in * 5 * 1000.0); > + s2 = 1 + (speed_in * 1000.0 - threshold * 1000.0) * incline; > > speed_out = min(max_accel, s2 > 1 ? s2 : s1); > > diff --git a/tools/ptraccel-debug.c b/tools/ptraccel-debug.c > index 1496763..b0867db 100644 > --- a/tools/ptraccel-debug.c > +++ b/tools/ptraccel-debug.c > @@ -147,12 +147,12 @@ print_accel_func(struct motion_filter *filter) > printf("# set ylabel \"raw accel factor\"\n"); > printf("# set style data lines\n"); > printf("# plot \"gnuplot.data\" using 1:2\n"); > - for (vel = 0.0; vel < 3.0; vel += .0001) { > + for (vel = 0.0; vel < 0.003; vel += 0.0000001) { > double result = pointer_accel_profile_linear(filter, > NULL, > vel, > 0 /* time */); > - printf("%.4f\t%.4f\n", vel, result); > + printf("%.8f\t%.4f\n", vel, result); > } > } > > -- > 2.4.3 > > _______________________________________________ > wayland-devel mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
