summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2014-06-02 23:09:27 +0200
committerJonas Ådahl <jadahl@gmail.com>2014-06-09 20:46:53 +0200
commitf3084e2c0dbc89238112ef0ed4ffd4ebb059ece6 (patch)
tree2e4883a12e6c591350e9845371d90db05f12cf81 /tools
parent14a1d189ff5261066d9797abc95c74e9f2491ba8 (diff)
downloadlibinput-f3084e2c0dbc89238112ef0ed4ffd4ebb059ece6.tar.gz
Use floating point numbers instead of fixed point numbers
Fixed point numbers can easily overflow, and double to fixed point conversion is lossy. Use floating point (double) where fixed point numbers where previously used and remove the li_fixed_t type. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'tools')
-rw-r--r--tools/event-debug.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/tools/event-debug.c b/tools/event-debug.c
index 8dbca4b0..e41da05a 100644
--- a/tools/event-debug.c
+++ b/tools/event-debug.c
@@ -254,29 +254,25 @@ static void
print_motion_event(struct libinput_event *ev)
{
struct libinput_event_pointer *p = libinput_event_get_pointer_event(ev);
- li_fixed_t x = libinput_event_pointer_get_dx(p),
- y = libinput_event_pointer_get_dy(p);
+ double x = libinput_event_pointer_get_dx(p);
+ double y = libinput_event_pointer_get_dy(p);
print_event_time(libinput_event_pointer_get_time(p));
- printf("%6.2f/%6.2f\n",
- li_fixed_to_double(x),
- li_fixed_to_double(y));
+ printf("%6.2f/%6.2f\n", x, y);
}
static void
print_absmotion_event(struct libinput_event *ev)
{
struct libinput_event_pointer *p = libinput_event_get_pointer_event(ev);
- li_fixed_t x = libinput_event_pointer_get_absolute_x_transformed(
+ double x = libinput_event_pointer_get_absolute_x_transformed(
p, screen_width);
- li_fixed_t y = libinput_event_pointer_get_absolute_y_transformed(
+ double y = libinput_event_pointer_get_absolute_y_transformed(
p, screen_height);
print_event_time(libinput_event_pointer_get_time(p));
- printf("%6.2f/%6.2f\n",
- li_fixed_to_double(x),
- li_fixed_to_double(y));
+ printf("%6.2f/%6.2f\n", x, y);
}
static void
@@ -300,7 +296,7 @@ print_axis_event(struct libinput_event *ev)
struct libinput_event_pointer *p = libinput_event_get_pointer_event(ev);
enum libinput_pointer_axis axis = libinput_event_pointer_get_axis(p);
const char *ax;
- li_fixed_t val;
+ double val;
switch (axis) {
case LIBINPUT_POINTER_AXIS_VERTICAL_SCROLL:
@@ -315,8 +311,7 @@ print_axis_event(struct libinput_event *ev)
print_event_time(libinput_event_pointer_get_time(p));
val = libinput_event_pointer_get_axis_value(p);
- printf("%s %.2f\n",
- ax, li_fixed_to_double(val));
+ printf("%s %.2f\n", ax, val);
}
static void
@@ -332,16 +327,15 @@ static void
print_touch_event_with_coords(struct libinput_event *ev)
{
struct libinput_event_touch *t = libinput_event_get_touch_event(ev);
- li_fixed_t x = libinput_event_touch_get_x_transformed(t, screen_width),
- y = libinput_event_touch_get_y_transformed(t, screen_height);
+ double x = libinput_event_touch_get_x_transformed(t, screen_width);
+ double y = libinput_event_touch_get_y_transformed(t, screen_height);
print_event_time(libinput_event_touch_get_time(t));
printf("%d (%d) %5.2f/%5.2f\n",
libinput_event_touch_get_slot(t),
libinput_event_touch_get_seat_slot(t),
- li_fixed_to_double(x),
- li_fixed_to_double(y));
+ x, y);
}
static int