Drop now-superfluous seat accessor functions

Replaced by the generic libinput_event_get_seat()

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Drop now-superfluous device accessor functions

Replaced by the generic libinput_event_get_device()

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Replace separate seat added/removed  event structs with a single merged one

These events are identical but for the event type. Replace with a single
struct.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Factor common parts out from added/removed seat notifies

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Replace separate device added/removed event structs with a single merged one

These events are identical but for the event type. Replace with a
single struct.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Factor common parts out from added/removed device notifies

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Improve namespacing of event types

Now that the target of an event isn't exposed to the caller anymore, the
namespacing can be associated with a more intuitive one.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Refcount the seat returned by libinput_event_get_seat()

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Refcount the device returned by libinput_event_get_device()

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Merge relative/absolute pointer motion events

The structs are identical after all

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Unify keyboard events

Provide one top-level event for keyboard events: libinput_event_keyboard. The
event type specifies which subtype the event is anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reduce pointer events to one single client-visible 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 <peter.hutterer@who-t.net>
Reduce touch events to a single event type

No real effect since we're hiding the actual touch events through the touch
type, but removing the touch_touch paves the way for a single touch struct
(see the pointer events).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Add documentation for the various events

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Rename device_notify_capabibility to device_capability_notify

More obvious naming

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Provide accessors to retrieve the right event type

Slightly enhances the type-safety. A caller may now do something along the
lines of

	struct libinput_event_pointer *ptrev;
	ptrev = libinput_event_get_pointer_event(event);

	if (!ptrev)
	   oops, that wasn't a pointer event

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Document event types.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Promote touch frames to top-level events

These events are not a state of a single touchpoints but rather a notification
that all touchpoints finished processing. As such, they should have their own
type.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Hook up touch frame events

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>