filter: use a separate variable for the final accel factor
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 8 Jul 2014 02:05:36 +0000 (12:05 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Wed, 9 Jul 2014 02:48:44 +0000 (12:48 +1000)
velocity is in unit/ms, the threshold is in units/ms. Once we divide
velocity/threshold, we're not in units/ms anymore but have a unitless factor.
Use a separate variable to avoid confusion.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
src/filter.c

index 7db78ba..4b2bbad 100644 (file)
@@ -335,6 +335,7 @@ pointer_accel_profile_smooth_simple(struct motion_filter *filter,
        double threshold = DEFAULT_THRESHOLD; /* units/ms */
        double accel = DEFAULT_ACCELERATION; /* unitless factor */
        double smooth_accel_coefficient; /* unitless factor */
+       double factor; /* unitless factor */
 
        if (threshold < 1.0)
                threshold = 1.0;
@@ -349,12 +350,12 @@ pointer_accel_profile_smooth_simple(struct motion_filter *filter,
        if (velocity <= threshold)
                return 1.0;
 
-       velocity /= threshold;
-       if (velocity >= accel)
+       factor = velocity/threshold;
+       if (factor >= accel)
                return accel;
 
-       /* Velocity is between 1.0 and accel, scale this to 0.0 - 1.0 */
-       velocity = (velocity - 1.0) / (accel - 1.0);
-       smooth_accel_coefficient = calc_penumbral_gradient(velocity);
+       /* factor is between 1.0 and accel, scale this to 0.0 - 1.0 */
+       factor = (factor - 1.0) / (accel - 1.0);
+       smooth_accel_coefficient = calc_penumbral_gradient(factor);
        return 1.0 + (smooth_accel_coefficient * (accel - 1.0));
 }