ei: add a helper function to create an event from a device

Just cuts down on duplication/room for error

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2022-02-22 14:27:44 +10:00
parent e3ed2c4ee6
commit bbbf2ff0f2
3 changed files with 20 additions and 18 deletions

View file

@ -88,6 +88,17 @@ ei_event_new(struct ei *ei)
return ei_event_create(&ei->object);
}
struct ei_event *
ei_event_new_for_device(struct ei_device *device)
{
struct ei_event *event = ei_event_new(ei_device_get_context(device));
event->seat = ei_seat_ref(ei_device_get_seat(device));
event->device = ei_device_ref(device);
return event;
}
static struct ei *
ei_event_get_context(struct ei_event *event)
{

View file

@ -206,6 +206,9 @@ ei_property_update(struct ei *ei, const char *name,
struct ei_event *
ei_event_new(struct ei *ei);
struct ei_event *
ei_event_new_for_device(struct ei_device *device);
struct ei_event *
ei_event_ref(struct ei_event *event);

View file

@ -252,11 +252,9 @@ static void
queue_device_added_event(struct ei_device *device)
{
struct ei *ei= ei_device_get_context(device);
struct ei_event *e = ei_event_new_for_device(device);
struct ei_event *e = ei_event_new(ei);
e->type = EI_EVENT_DEVICE_ADDED;
e->seat = ei_seat_ref(ei_device_get_seat(device));
e->device = ei_device_ref(device);
queue_event(ei, e);
}
@ -265,11 +263,9 @@ static void
queue_device_removed_event(struct ei_device *device)
{
struct ei *ei= ei_device_get_context(device);
struct ei_event *e = ei_event_new_for_device(device);
struct ei_event *e = ei_event_new(ei);
e->type = EI_EVENT_DEVICE_REMOVED;
e->seat = ei_seat_ref(ei_device_get_seat(device));
e->device = ei_device_ref(device);
queue_event(ei, e);
}
@ -278,11 +274,9 @@ static void
insert_device_removed_event(struct ei_device *device)
{
struct ei *ei= ei_device_get_context(device);
struct ei_event *e = ei_event_new_for_device(device);
struct ei_event *e = ei_event_new(ei);
e->type = EI_EVENT_DEVICE_REMOVED;
e->seat = ei_seat_ref(ei_device_get_seat(device));
e->device = ei_device_ref(device);
insert_event(ei, e);
}
@ -291,11 +285,9 @@ static void
queue_paused_event(struct ei_device *device)
{
struct ei *ei= ei_device_get_context(device);
struct ei_event *e = ei_event_new_for_device(device);
struct ei_event *e = ei_event_new(ei);
e->type = EI_EVENT_DEVICE_PAUSED;
e->seat = ei_seat_ref(ei_device_get_seat(device));
e->device = ei_device_ref(device);
queue_event(ei, e);
}
@ -304,11 +296,9 @@ static void
queue_resumed_event(struct ei_device *device)
{
struct ei *ei= ei_device_get_context(device);
struct ei_event *e = ei_event_new_for_device(device);
struct ei_event *e = ei_event_new(ei);
e->type = EI_EVENT_DEVICE_RESUMED;
e->seat = ei_seat_ref(ei_device_get_seat(device));
e->device = ei_device_ref(device);
queue_event(ei, e);
}
@ -318,11 +308,9 @@ queue_keyboard_modifiers_event(struct ei_device *device,
const struct ei_xkb_modifiers *mods)
{
struct ei *ei= ei_device_get_context(device);
struct ei_event *e = ei_event_new_for_device(device);
struct ei_event *e = ei_event_new(ei);
e->type = EI_EVENT_KEYBOARD_MODIFIERS;
e->seat = ei_seat_ref(ei_device_get_seat(device));
e->device = ei_device_ref(device);
e->modifiers = *mods;
queue_event(ei, e);