[PATCH v2 libinput 10/15] tools: only print the tablet axes we have on the tool
Peter Hutterer
peter.hutterer at who-t.net
Wed Feb 18 13:54:25 PST 2015
This doesn't really have an effect, since we don't set the per-tool axes
correctly yet.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
Changes to v1:
- factor out into print_tablet_axes() so we can use the logic from proximity
and axes events
- only print tilt if the tool supports it
tools/event-debug.c | 107 ++++++++++++++++++++++++++++------------------------
1 file changed, 57 insertions(+), 50 deletions(-)
diff --git a/tools/event-debug.c b/tools/event-debug.c
index 0d25d6a..169224c 100644
--- a/tools/event-debug.c
+++ b/tools/event-debug.c
@@ -288,48 +288,78 @@ tablet_axis_changed_sym(struct libinput_event_tablet *t,
}
static void
-print_tablet_axis_event(struct libinput_event *ev)
+print_tablet_axes(struct libinput_event_tablet *t)
{
- struct libinput_event_tablet *t = libinput_event_get_tablet_event(ev);
+ struct libinput_tool *tool = libinput_event_tablet_get_tool(t);
double x, y;
double dist, pressure;
double rotation, slider;
- print_event_time(libinput_event_tablet_get_time(t));
-
x = libinput_event_tablet_get_axis_value(t, LIBINPUT_TABLET_AXIS_X);
y = libinput_event_tablet_get_axis_value(t, LIBINPUT_TABLET_AXIS_Y);
printf("\t%.2f%s/%.2f%s",
x, tablet_axis_changed_sym(t, LIBINPUT_TABLET_AXIS_X),
y, tablet_axis_changed_sym(t, LIBINPUT_TABLET_AXIS_Y));
- x = libinput_event_tablet_get_axis_value(t, LIBINPUT_TABLET_AXIS_TILT_X);
- y = libinput_event_tablet_get_axis_value(t, LIBINPUT_TABLET_AXIS_TILT_Y);
- printf("\ttilt: %.2f%s/%.2f%s ",
- x, tablet_axis_changed_sym(t, LIBINPUT_TABLET_AXIS_TILT_X),
- y, tablet_axis_changed_sym(t, LIBINPUT_TABLET_AXIS_TILT_Y));
+ if (libinput_tool_has_axis(tool, LIBINPUT_TABLET_AXIS_TILT_X) ||
+ libinput_tool_has_axis(tool, LIBINPUT_TABLET_AXIS_TILT_Y)) {
+ x = libinput_event_tablet_get_axis_value(t,
+ LIBINPUT_TABLET_AXIS_TILT_X);
+ y = libinput_event_tablet_get_axis_value(t,
+ LIBINPUT_TABLET_AXIS_TILT_Y);
+ printf("\ttilt: %.2f%s/%.2f%s ",
+ x, tablet_axis_changed_sym(t,
+ LIBINPUT_TABLET_AXIS_TILT_X),
+ y, tablet_axis_changed_sym(t,
+ LIBINPUT_TABLET_AXIS_TILT_Y));
+ }
- dist = libinput_event_tablet_get_axis_value(t, LIBINPUT_TABLET_AXIS_DISTANCE);
- pressure = libinput_event_tablet_get_axis_value(t, LIBINPUT_TABLET_AXIS_PRESSURE);
- if (dist)
- printf("distance: %.2f%s",
- dist, tablet_axis_changed_sym(t, LIBINPUT_TABLET_AXIS_DISTANCE));
- else
- printf("pressure: %.2f%s",
- pressure, tablet_axis_changed_sym(t, LIBINPUT_TABLET_AXIS_PRESSURE));
+ if (libinput_tool_has_axis(tool, LIBINPUT_TABLET_AXIS_DISTANCE) ||
+ libinput_tool_has_axis(tool, LIBINPUT_TABLET_AXIS_PRESSURE)) {
+ dist = libinput_event_tablet_get_axis_value(t,
+ LIBINPUT_TABLET_AXIS_DISTANCE);
+ pressure = libinput_event_tablet_get_axis_value(t,
+ LIBINPUT_TABLET_AXIS_PRESSURE);
+ if (dist) {
+ printf("\tdistance: %.2f%s",
+ dist,
+ tablet_axis_changed_sym(t,
+ LIBINPUT_TABLET_AXIS_DISTANCE));
+ } else {
+ printf("\tpressure: %.2f%s",
+ pressure,
+ tablet_axis_changed_sym(t,
+ LIBINPUT_TABLET_AXIS_PRESSURE));
+ }
+ }
- rotation = libinput_event_tablet_get_axis_value(t,
+ if (libinput_tool_has_axis(tool, LIBINPUT_TABLET_AXIS_ROTATION_Z)) {
+ rotation = libinput_event_tablet_get_axis_value(t,
LIBINPUT_TABLET_AXIS_ROTATION_Z);
- printf(" rotation: %.2f%s",
- rotation,
- tablet_axis_changed_sym(t, LIBINPUT_TABLET_AXIS_ROTATION_Z));
+ printf("\trotation: %.2f%s",
+ rotation,
+ tablet_axis_changed_sym(t,
+ LIBINPUT_TABLET_AXIS_ROTATION_Z));
+ }
- slider = libinput_event_tablet_get_axis_value(t,
+ if (libinput_tool_has_axis(tool, LIBINPUT_TABLET_AXIS_SLIDER)) {
+ slider = libinput_event_tablet_get_axis_value(t,
LIBINPUT_TABLET_AXIS_SLIDER);
- printf(" slider: %.2f%s",
- slider,
- tablet_axis_changed_sym(t, LIBINPUT_TABLET_AXIS_SLIDER));
+ printf("\tslider: %.2f%s",
+ slider,
+ tablet_axis_changed_sym(t,
+ LIBINPUT_TABLET_AXIS_SLIDER));
+ }
+}
+
+static void
+print_tablet_axis_event(struct libinput_event *ev)
+{
+ struct libinput_event_tablet *t = libinput_event_get_tablet_event(ev);
+
+ print_event_time(libinput_event_tablet_get_time(t));
+ print_tablet_axes(t);
printf("\n");
}
@@ -350,8 +380,6 @@ print_proximity_event(struct libinput_event *ev)
enum libinput_tool_proximity_state state;
const char *tool_str,
*state_str;
- double x, y;
- double dist, pressure;
switch (libinput_tool_get_type(tool)) {
case LIBINPUT_TOOL_NONE:
@@ -390,28 +418,7 @@ print_proximity_event(struct libinput_event *ev)
print_event_time(libinput_event_tablet_get_time(t));
if (state == LIBINPUT_TOOL_PROXIMITY_IN) {
- x = libinput_event_tablet_get_axis_value(
- t, LIBINPUT_TABLET_AXIS_X);
- y = libinput_event_tablet_get_axis_value(
- t, LIBINPUT_TABLET_AXIS_Y);
- printf("\t%.2f/%.2f", x, y);
-
- x = libinput_event_tablet_get_axis_value(
- t, LIBINPUT_TABLET_AXIS_TILT_X);
- y = libinput_event_tablet_get_axis_value(
- t, LIBINPUT_TABLET_AXIS_TILT_Y);
- printf("\ttilt: %.2f/%.2f ", x, y);
-
- dist = libinput_event_tablet_get_axis_value(
- t, LIBINPUT_TABLET_AXIS_DISTANCE);
- pressure = libinput_event_tablet_get_axis_value(
- t, LIBINPUT_TABLET_AXIS_PRESSURE);
-
- if (dist)
- printf("\tdistance: %.2f ", dist);
- else
- printf("\tpressure: %.2f ", pressure);
-
+ print_tablet_axes(t);
state_str = "proximity-in";
} else if (state == LIBINPUT_TOOL_PROXIMITY_OUT) {
state_str = "proximity-out";
@@ -420,7 +427,7 @@ print_proximity_event(struct libinput_event *ev)
abort();
}
- printf("%s (%#x) %s",
+ printf("\t%s (%#x) %s",
tool_str, libinput_tool_get_serial(tool), state_str);
printf("\n");
}
--
2.1.0
More information about the wayland-devel
mailing list