filter: annotate the various variables we have with units

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
Peter Hutterer 2014-07-08 11:45:36 +10:00
parent 289949d0c4
commit 066092a04f

View file

@ -51,22 +51,22 @@ filter_destroy(struct motion_filter *filter)
* Default parameters for pointer acceleration profiles. * Default parameters for pointer acceleration profiles.
*/ */
#define DEFAULT_CONSTANT_ACCELERATION 10.0 #define DEFAULT_CONSTANT_ACCELERATION 10.0 /* unitless factor */
#define DEFAULT_THRESHOLD 4.0 #define DEFAULT_THRESHOLD 4.0 /* in units/ms */
#define DEFAULT_ACCELERATION 2.0 #define DEFAULT_ACCELERATION 2.0 /* unitless factor */
/* /*
* Pointer acceleration filter constants * Pointer acceleration filter constants
*/ */
#define MAX_VELOCITY_DIFF 1.0 #define MAX_VELOCITY_DIFF 1.0 /* units/ms */
#define MOTION_TIMEOUT 300 /* (ms) */ #define MOTION_TIMEOUT 300 /* (ms) */
#define NUM_POINTER_TRACKERS 16 #define NUM_POINTER_TRACKERS 16
struct pointer_tracker { struct pointer_tracker {
double dx; double dx; /* delta to most recent event, in device units */
double dy; double dy; /* delta to most recent event, in device units */
uint64_t time; uint64_t time; /* ms */
int dir; int dir;
}; };
@ -76,10 +76,10 @@ struct pointer_accelerator {
accel_profile_func_t profile; accel_profile_func_t profile;
double velocity; double velocity; /* units/ms */
double last_velocity; double last_velocity; /* units/ms */
int last_dx; int last_dx; /* device units */
int last_dy; int last_dy; /* device units */
struct pointer_tracker *trackers; struct pointer_tracker *trackers;
int cur_tracker; int cur_tracker;
@ -183,7 +183,7 @@ calculate_tracker_velocity(struct pointer_tracker *tracker, uint64_t time)
dx = tracker->dx; dx = tracker->dx;
dy = tracker->dy; dy = tracker->dy;
distance = sqrt(dx*dx + dy*dy); distance = sqrt(dx*dx + dy*dy);
return distance / (double)(time - tracker->time); return distance / (double)(time - tracker->time); /* units/ms */
} }
static double static double
@ -227,7 +227,7 @@ calculate_velocity(struct pointer_accelerator *accel, uint64_t time)
} }
} }
return result; return result; /* units/ms */
} }
static double static double
@ -254,7 +254,7 @@ calculate_acceleration(struct pointer_accelerator *accel,
factor = factor / 6.0; factor = factor / 6.0;
return factor; return factor; /* unitless factor */
} }
static void static void
@ -264,8 +264,8 @@ accelerator_filter(struct motion_filter *filter,
{ {
struct pointer_accelerator *accel = struct pointer_accelerator *accel =
(struct pointer_accelerator *) filter; (struct pointer_accelerator *) filter;
double velocity; double velocity; /* units/ms */
double accel_value; double accel_value; /* unitless factor */
feed_trackers(accel, motion->dx, motion->dy, time); feed_trackers(accel, motion->dx, motion->dy, time);
velocity = calculate_velocity(accel, time); velocity = calculate_velocity(accel, time);
@ -329,12 +329,12 @@ calc_penumbral_gradient(double x)
double double
pointer_accel_profile_smooth_simple(struct motion_filter *filter, pointer_accel_profile_smooth_simple(struct motion_filter *filter,
void *data, void *data,
double velocity, double velocity, /* units/ms */
uint64_t time) uint64_t time)
{ {
double threshold = DEFAULT_THRESHOLD; double threshold = DEFAULT_THRESHOLD; /* units/ms */
double accel = DEFAULT_ACCELERATION; double accel = DEFAULT_ACCELERATION; /* unitless factor */
double smooth_accel_coefficient; double smooth_accel_coefficient; /* unitless factor */
if (threshold < 1.0) if (threshold < 1.0)
threshold = 1.0; threshold = 1.0;