mouse: Add property for scroll acceleration curve

This seems to be useful when diagnosing scrolling problems.

BUG=None
TEST=Set the curve to linear (`10,0,0,0,0`) for a mouse, and check that
     the behaviour changes accordingly.

Change-Id: I96f9182f45a855e3e65add62a852730c195f222d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/gestures/+/2088753
Tested-by: Harry Cutts <hcutts@chromium.org>
Auto-Submit: Harry Cutts <hcutts@chromium.org>
Reviewed-by: Sean O'Brien <seobrien@chromium.org>
Commit-Queue: Harry Cutts <hcutts@chromium.org>
diff --git a/include/mouse_interpreter.h b/include/mouse_interpreter.h
index c4cdb8f..449518e 100644
--- a/include/mouse_interpreter.h
+++ b/include/mouse_interpreter.h
@@ -96,6 +96,9 @@
   // f_approximated = a0 + a1*v + a2*v^2 + a3*v^3 + a4*v^4
   double scroll_accel_curve_[5];
 
+  // Adjust the scroll acceleration curve
+  DoubleArrayProperty scroll_accel_curve_prop_;
+
   // when x is 177, the polynomial curve gives 450, the max pixels to scroll.
   DoubleProperty scroll_max_allowed_input_speed_;
 
diff --git a/src/mouse_interpreter.cc b/src/mouse_interpreter.cc
index 5cfe8c6..3241bae 100644
--- a/src/mouse_interpreter.cc
+++ b/src/mouse_interpreter.cc
@@ -25,6 +25,8 @@
       wheel_emulation_active_(false),
       reverse_scrolling_(prop_reg, "Mouse Reverse Scrolling", false),
       hi_res_scrolling_(prop_reg, "Mouse High Resolution Scrolling", false),
+      scroll_accel_curve_prop_(prop_reg, "Mouse Scroll Accel Curve",
+          scroll_accel_curve_, sizeof(scroll_accel_curve_) / sizeof(double)),
       scroll_max_allowed_input_speed_(prop_reg,
                                       "Mouse Scroll Max Input Speed",
                                       177.0,