diff options
author | Jonas Ådahl <jadahl@gmail.com> | 2014-06-02 23:09:27 +0200 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2014-06-09 20:46:53 +0200 |
commit | f3084e2c0dbc89238112ef0ed4ffd4ebb059ece6 (patch) | |
tree | 2e4883a12e6c591350e9845371d90db05f12cf81 /tools | |
parent | 14a1d189ff5261066d9797abc95c74e9f2491ba8 (diff) | |
download | libinput-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.c | 28 |
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 |