Find a file
Jonas Ådahl ce787552bc Introduce libinput object managing all input data
Instead of having the user manage added and removed fd's as well as the
fd used for creating evdev devices, introduce a libinput object that
itself has an epoll fd.

The user no longer manages multiple fd's per libinput instance, but
instead handles one fd, dispatches libinput when data is available, then
reading events using libinput_get_event().

libinput_event's are now per libinstance, but divided into categories.
So far the only category is device events. Device events are categorized
by the presence of a non-NULL device pointer in the event.

The current API usage should look like:

struct libinput libinput = ...;
struct libinput_event *event;

if (libinput_dispatch(libinput) != 0)
	return -1;
while ((event = libinput_get_event(libinput))) {
	if (event->device)
		process_device_event(event);
	free(event);
}

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2013-11-17 17:03:06 +01:00
m4 Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00
src Introduce libinput object managing all input data 2013-11-17 17:03:06 +01:00
.gitignore Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00
autogen.sh Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00
configure.ac Introduce libinput object managing all input data 2013-11-17 17:03:06 +01:00
Makefile.am Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00
README Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00

This library does processing on input device events while providing an API
to the the user used for delegating more useful input events.

Input event processing includes scaling touch coordinates, generating
pointer events from touchpads, pointer acceleration, etc.

It is based on the input code from the weston Wayland reference compositor.

It has no other dependencies than libmtdev and supports only evdev devices.