mtplot: option to render all points with a single pressure
This is useful for looking at linearity when pressure flucturates a
lot.
BUG=chromium:358292
TEST=tested on Pixel
Change-Id: I0f32b82de297623c5d7deb043f74da755d8fa7f6
Reviewed-on: https://chromium-review.googlesource.com/192370
Reviewed-by: Yufeng Shen <miletus@chromium.org>
Commit-Queue: Andrew de los Reyes <adlr@chromium.org>
Tested-by: Andrew de los Reyes <adlr@chromium.org>
diff --git a/mtplot.c b/mtplot.c
index 77bd1c1..cd53501 100644
--- a/mtplot.c
+++ b/mtplot.c
@@ -454,6 +454,7 @@
bool monotonic = true;
bool persist = true;
bool showclicks = false;
+bool single_pressure = false;
static Display *dpy;
static unsigned long blackColor;
@@ -798,7 +799,7 @@
slot->track_id = e->value;
break;
case ABS_MT_PRESSURE:
- slot->pressure = e->value;
+ slot->pressure = single_pressure ? 3 : e->value;
break;
case ABS_PRESSURE:
if (single_pressure_device)
@@ -1056,6 +1057,7 @@
{ "output", optional_argument, NULL, 'o' },
{ "persist", optional_argument, NULL, 'p' },
{ "showclicks", optional_argument, NULL, 's' },
+ { "singlepressure", optional_argument, NULL, 'a' },
{ 0, },
};
@@ -1140,6 +1142,10 @@
" To toggle at runtime press 'p'\n");
printf(" -s, --showclicks[=0|1] =1: clicks are shown visibly marked on screen\n"
" =0: clicks do not leave a visible mark\n");
+ printf(" -a, --singlepressure[=0|1] =1: "
+ "All points are drawn with same pressure\n"
+ " =0: "
+ "Point size indicates pressure (default)\n");
return EXIT_FAILURE;
}
@@ -1165,6 +1171,9 @@
if (c == -1)
break;
switch (c) {
+ case 'a':
+ single_pressure = (optarg) ? atoi(optarg) : true;
+ break;
case 'c':
clickclear = (optarg) ? atoi(optarg) : true;
break;
@@ -1325,6 +1334,8 @@
KeySym ks = XLookupKeysym(&xke, 0);
if (ks == XK_Escape)
MtClear();
+ else if (ks == XK_a)
+ single_pressure = !single_pressure;
else if (ks == XK_c)
clickclear = !clickclear;
else if (ks == XK_p)