From 040c25a4f43217185da75f863419e4c9fd3cc4c4 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 19 Dec 2013 13:15:28 +1000 Subject: [PATCH] Reduce pointer events to one single type The event type itself says enough about the actual event type, we don't need to have separate structs for every type. Signed-off-by: Peter Hutterer --- src/libinput.c | 100 +++++++++++++++---------------------------------- src/libinput.h | 57 +++++++++++----------------- 2 files changed, 52 insertions(+), 105 deletions(-) diff --git a/src/libinput.c b/src/libinput.c index 672517bf..3eff6c85 100644 --- a/src/libinput.c +++ b/src/libinput.c @@ -65,30 +65,13 @@ struct libinput_event_keyboard { enum libinput_keyboard_key_state state; }; -struct libinput_event_pointer_motion { - struct libinput_event base; - uint32_t time; - li_fixed_t dx; - li_fixed_t dy; -}; - -struct libinput_event_pointer_motion_absolute { +struct libinput_event_pointer { struct libinput_event base; uint32_t time; li_fixed_t x; li_fixed_t y; -}; - -struct libinput_event_pointer_button { - struct libinput_event base; - uint32_t time; uint32_t button; enum libinput_pointer_button_state state; -}; - -struct libinput_event_pointer_axis { - struct libinput_event base; - uint32_t time; enum libinput_pointer_axis axis; li_fixed_t value; }; @@ -146,85 +129,64 @@ libinput_event_keyboard_get_key_state( } LIBINPUT_EXPORT uint32_t -libinput_event_pointer_motion_get_time( - struct libinput_event_pointer_motion *event) +libinput_event_pointer_get_time( + struct libinput_event_pointer *event) { return event->time; } LIBINPUT_EXPORT li_fixed_t -libinput_event_pointer_motion_get_dx( - struct libinput_event_pointer_motion *event) +libinput_event_pointer_get_dx( + struct libinput_event_pointer *event) { - return event->dx; + return event->x; } LIBINPUT_EXPORT li_fixed_t -libinput_event_pointer_motion_get_dy( - struct libinput_event_pointer_motion *event) +libinput_event_pointer_get_dy( + struct libinput_event_pointer *event) { - return event->dy; -} - -LIBINPUT_EXPORT uint32_t -libinput_event_pointer_motion_absolute_get_time( - struct libinput_event_pointer_motion_absolute *event) -{ - return event->time; + return event->y; } LIBINPUT_EXPORT li_fixed_t -libinput_event_pointer_motion_absolute_get_x( - struct libinput_event_pointer_motion_absolute *event) +libinput_event_pointer_get_absolute_x( + struct libinput_event_pointer *event) { return event->x; } LIBINPUT_EXPORT li_fixed_t -libinput_event_pointer_motion_absolute_get_y( - struct libinput_event_pointer_motion_absolute *event) +libinput_event_pointer_get_absolute_y( + struct libinput_event_pointer *event) { return event->y; } LIBINPUT_EXPORT uint32_t -libinput_event_pointer_button_get_time( - struct libinput_event_pointer_button *event) -{ - return event->time; -} - -LIBINPUT_EXPORT uint32_t -libinput_event_pointer_button_get_button( - struct libinput_event_pointer_button *event) +libinput_event_pointer_get_button( + struct libinput_event_pointer *event) { return event->button; } LIBINPUT_EXPORT enum libinput_pointer_button_state -libinput_event_pointer_button_get_state( - struct libinput_event_pointer_button *event) +libinput_event_pointer_get_button_state( + struct libinput_event_pointer *event) { return event->state; } -LIBINPUT_EXPORT uint32_t -libinput_event_pointer_axis_get_time( - struct libinput_event_pointer_axis *event) -{ - return event->time; -} - LIBINPUT_EXPORT enum libinput_pointer_axis -libinput_event_pointer_axis_get_axis( - struct libinput_event_pointer_axis *event) +libinput_event_pointer_get_axis( + struct libinput_event_pointer *event) { return event->axis; } LIBINPUT_EXPORT li_fixed_t -libinput_event_pointer_axis_get_value( - struct libinput_event_pointer_axis *event) +libinput_event_pointer_get_axis_value( + struct libinput_event_pointer *event) { return event->value; } @@ -655,16 +617,16 @@ pointer_notify_motion(struct libinput_device *device, li_fixed_t dx, li_fixed_t dy) { - struct libinput_event_pointer_motion *motion_event; + struct libinput_event_pointer *motion_event; motion_event = malloc(sizeof *motion_event); if (!motion_event) return; - *motion_event = (struct libinput_event_pointer_motion) { + *motion_event = (struct libinput_event_pointer) { .time = time, - .dx = dx, - .dy = dy, + .x = dx, + .y = dy, }; post_device_event(device, @@ -678,13 +640,13 @@ pointer_notify_motion_absolute(struct libinput_device *device, li_fixed_t x, li_fixed_t y) { - struct libinput_event_pointer_motion_absolute *motion_absolute_event; + struct libinput_event_pointer *motion_absolute_event; motion_absolute_event = malloc(sizeof *motion_absolute_event); if (!motion_absolute_event) return; - *motion_absolute_event = (struct libinput_event_pointer_motion_absolute) { + *motion_absolute_event = (struct libinput_event_pointer) { .time = time, .x = x, .y = y, @@ -701,13 +663,13 @@ pointer_notify_button(struct libinput_device *device, int32_t button, enum libinput_pointer_button_state state) { - struct libinput_event_pointer_button *button_event; + struct libinput_event_pointer *button_event; button_event = malloc(sizeof *button_event); if (!button_event) return; - *button_event = (struct libinput_event_pointer_button) { + *button_event = (struct libinput_event_pointer) { .time = time, .button = button, .state = state, @@ -724,13 +686,13 @@ pointer_notify_axis(struct libinput_device *device, enum libinput_pointer_axis axis, li_fixed_t value) { - struct libinput_event_pointer_axis *axis_event; + struct libinput_event_pointer *axis_event; axis_event = malloc(sizeof *axis_event); if (!axis_event) return; - *axis_event = (struct libinput_event_pointer_axis) { + *axis_event = (struct libinput_event_pointer) { .time = time, .axis = axis, .value = value, diff --git a/src/libinput.h b/src/libinput.h index 2201d5d2..e6043508 100644 --- a/src/libinput.h +++ b/src/libinput.h @@ -144,10 +144,7 @@ struct libinput_seat; struct libinput_event; struct libinput_event_device_notify; struct libinput_event_keyboard; -struct libinput_event_pointer_motion; -struct libinput_event_pointer_motion_absolute; -struct libinput_event_pointer_button; -struct libinput_event_pointer_axis; +struct libinput_event_pointer; struct libinput_event_touch_touch; /** @@ -257,68 +254,56 @@ libinput_event_keyboard_get_key_state( struct libinput_event_keyboard *event); /** - * @defgroup event_pointer_motion Pointer motion event + * @defgroup event_pointer Pointer motion event */ uint32_t -libinput_event_pointer_motion_get_time( - struct libinput_event_pointer_motion *event); +libinput_event_pointer_get_time( + struct libinput_event_pointer *event); li_fixed_t -libinput_event_pointer_motion_get_dx( - struct libinput_event_pointer_motion *event); +libinput_event_pointer_get_dx( + struct libinput_event_pointer *event); li_fixed_t -libinput_event_pointer_motion_get_dy( - struct libinput_event_pointer_motion *event); +libinput_event_pointer_get_dy( + struct libinput_event_pointer *event); /** - * @defgroup event_pointer_motion_absolute Absolute pointer motion event + * @defgroup event_pointer_absolute Absolute pointer motion event */ -uint32_t -libinput_event_pointer_motion_absolute_get_time( - struct libinput_event_pointer_motion_absolute *event); - li_fixed_t -libinput_event_pointer_motion_absolute_get_x( - struct libinput_event_pointer_motion_absolute *event); +libinput_event_pointer_get_absolute_x( + struct libinput_event_pointer *event); li_fixed_t -libinput_event_pointer_motion_absolute_get_y( - struct libinput_event_pointer_motion_absolute *event); +libinput_event_pointer_get_absolute_y( + struct libinput_event_pointer *event); /** * @defgroup event_pointer_button Pointer button event */ uint32_t -libinput_event_pointer_button_get_time( - struct libinput_event_pointer_button *event); - -uint32_t -libinput_event_pointer_button_get_button( - struct libinput_event_pointer_button *event); +libinput_event_pointer_get_button( + struct libinput_event_pointer *event); enum libinput_pointer_button_state -libinput_event_pointer_button_get_state( - struct libinput_event_pointer_button *event); +libinput_event_pointer_get_button_state( + struct libinput_event_pointer *event); /** * @defgroup event_pointer_axis Pointer axis event */ -uint32_t -libinput_event_pointer_axis_get_time( - struct libinput_event_pointer_axis *event); - enum libinput_pointer_axis -libinput_event_pointer_axis_get_axis( - struct libinput_event_pointer_axis *event); +libinput_event_pointer_get_axis( + struct libinput_event_pointer *event); li_fixed_t -libinput_event_pointer_axis_get_value( - struct libinput_event_pointer_axis *event); +libinput_event_pointer_get_axis_value( + struct libinput_event_pointer *event); /** * @defgroup event_pointer_button Pointer button event -- 2.34.1