summaryrefslogtreecommitdiff
path: root/tools/ptraccel-debug.c
diff options
context:
space:
mode:
authorKim Lindberger <kim.lindberger@gmail.com>2018-08-17 15:12:58 +0200
committerKim Lindberger <kim.lindberger@gmail.com>2018-08-22 12:12:55 +0200
commit99334e11bfd426687edf99a913ae0502a428e107 (patch)
treedd909525d3248b5847d31034a18a13a42c4705f3 /tools/ptraccel-debug.c
parentf82eeae2997175b4c064eb09c42a34a8b196ada0 (diff)
downloadlibinput-99334e11bfd426687edf99a913ae0502a428e107.tar.gz
Add quirk to control velocity averaging, disable it by default
libinput applies averaging to the velocity of most pointer devices. Averaging the velocity makes the motion look smooth and may be of benefit to bad input devices. For good devices, however, it comes at the unfortunate price of decreased accuaracy. This change turns velocity averaging off by default (sets ntrackers to 2 instead of 16) and allows for it to be turned back on via a quirk, for bad devices which require it.
Diffstat (limited to 'tools/ptraccel-debug.c')
-rw-r--r--tools/ptraccel-debug.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/tools/ptraccel-debug.c b/tools/ptraccel-debug.c
index 9a84688a..5e403b66 100644
--- a/tools/ptraccel-debug.c
+++ b/tools/ptraccel-debug.c
@@ -222,6 +222,7 @@ main(int argc, char **argv)
double custom_deltas[1024];
double speed = 0.0;
int dpi = 1000;
+ bool use_averaging = false;
const char *filter_type = "linear";
accel_profile_func_t profile = NULL;
double tp_multiplier = 1.0;
@@ -314,19 +315,25 @@ main(int argc, char **argv)
}
if (streq(filter_type, "linear")) {
- filter = create_pointer_accelerator_filter_linear(dpi);
+ filter = create_pointer_accelerator_filter_linear(dpi,
+ use_averaging);
profile = pointer_accel_profile_linear;
} else if (streq(filter_type, "low-dpi")) {
- filter = create_pointer_accelerator_filter_linear_low_dpi(dpi);
+ filter = create_pointer_accelerator_filter_linear_low_dpi(dpi,
+ use_averaging);
profile = pointer_accel_profile_linear_low_dpi;
} else if (streq(filter_type, "touchpad")) {
- filter = create_pointer_accelerator_filter_touchpad(dpi, 0, 0);
+ filter = create_pointer_accelerator_filter_touchpad(dpi,
+ 0, 0,
+ use_averaging);
profile = touchpad_accel_profile_linear;
} else if (streq(filter_type, "x230")) {
- filter = create_pointer_accelerator_filter_lenovo_x230(dpi);
+ filter = create_pointer_accelerator_filter_lenovo_x230(dpi,
+ use_averaging);
profile = touchpad_lenovo_x230_accel_profile;
} else if (streq(filter_type, "trackpoint")) {
- filter = create_pointer_accelerator_filter_trackpoint(tp_multiplier);
+ filter = create_pointer_accelerator_filter_trackpoint(tp_multiplier,
+ use_averaging);
profile = trackpoint_accel_profile;
} else {
fprintf(stderr, "Invalid filter type %s\n", filter_type);