libeis.h File Reference
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>

Go to the source code of this file.

Typedefs

typedef void(* eis_log_handler) (struct eis *eis, enum eis_log_priority priority, const char *message, bool is_continuation)
 The log handler for library logging. More...
 

Enumerations

enum  eis_device_capability { EIS_DEVICE_CAP_POINTER, EIS_DEVICE_CAP_POINTER_ABSOLUTE, EIS_DEVICE_CAP_KEYBOARD, EIS_DEVICE_CAP_TOUCH }
 
enum  eis_keymap_type { EIS_KEYMAP_TYPE_XKB }
 
enum  eis_event_type {
  EIS_EVENT_CLIENT_CONNECT, EIS_EVENT_CLIENT_DISCONNECT, EIS_EVENT_DEVICE_ADDED, EIS_EVENT_DEVICE_REMOVED,
  EIS_EVENT_POINTER_MOTION, EIS_EVENT_POINTER_MOTION_ABSOLUTE, EIS_EVENT_POINTER_BUTTON, EIS_EVENT_POINTER_SCROLL,
  EIS_EVENT_POINTER_SCROLL_DISCRETE, EIS_EVENT_KEYBOARD_KEY, EIS_EVENT_TOUCH_DOWN, EIS_EVENT_TOUCH_UP,
  EIS_EVENT_TOUCH_MOTION
}
 
enum  eis_log_priority { EIS_LOG_PRIORITY_DEBUG, EIS_LOG_PRIORITY_INFO, EIS_LOG_PRIORITY_WARNING, EIS_LOG_PRIORITY_ERROR }
 

Functions

struct eis * eis_new (void *user_data)
 Create a new libeis context with a refcount of 1. More...
 
void eis_log_set_handler (struct eis *eis, eis_log_handler log_handler)
 Change the log handler for this context. More...
 
void eis_log_set_priority (struct eis *eis, enum eis_log_priority priority)
 
enum eis_log_priority eis_log_get_priority (const struct eis *eis)
 
struct eis * eis_ref (struct eis *eis)
 
struct eis * eis_unref (struct eis *eis)
 
void * eis_get_user_data (struct eis *eis)
 
void eis_set_user_data (struct eis *eis, void *user_data)
 
int eis_setup_backend_socket (struct eis *ctx, const char *path)
 Initialize the context with a UNIX socket name. More...
 
int eis_setup_backend_fd (struct eis *ctx)
 Initialize the context that can take pre-configured sockets. More...
 
int eis_backend_fd_add_fd (struct eis *ctx, int fd)
 Add a new client to a context set up with eis_setup_backend_fd() More...
 
int eis_get_fd (struct eis *eis)
 libeis keeps a single file descriptor for all events. More...
 
void eis_dispatch (struct eis *eis)
 Main event dispatching function. More...
 
struct eis_event * eis_get_event (struct eis *eis)
 Returns the next event in the internal event queue (or NULL) and removes it from the queue. More...
 
struct eis_event * eis_peek_event (struct eis *eis)
 Returns the next event in the internal event queue (or NULL) without removing that event from the queue, i.e. More...
 
struct eis_event * eis_event_unref (struct eis_event *event)
 Release resources associated with this event. More...
 
struct eis_client * eis_client_ref (struct eis_client *client)
 
struct eis_client * eis_client_unref (struct eis_client *client)
 
void * eis_client_get_user_data (struct eis_client *eis_client)
 
void eis_client_set_user_data (struct eis_client *eis_client, void *user_data)
 
const char * eis_client_get_name (struct eis_client *client)
 Return the name set by this client. More...
 
void eis_client_connect (struct eis_client *client)
 Allow connection from the client. More...
 
void eis_client_disconnect (struct eis_client *client)
 Disconnect this client. More...
 
struct eis_seat * eis_client_new_seat (struct eis_client *client, const char *name)
 Create a new logical seat with a given name. More...
 
struct eis_seat * eis_seat_ref (struct eis_seat *seat)
 
struct eis_seat * eis_seat_unref (struct eis_seat *seat)
 
struct eis_client * eis_seat_get_client (struct eis_seat *eis_seat)
 
const char * eis_seat_get_name (struct eis_seat *eis_seat)
 
void * eis_seat_get_user_data (struct eis_seat *eis_seat)
 
void eis_seat_set_user_data (struct eis_seat *eis_seat, void *user_data)
 
void eis_seat_allow_capability (struct eis_seat *seat, enum eis_device_capability cap)
 Allow a capability on the seat. More...
 
void eis_seat_add (struct eis_seat *seat)
 Add this seat to its client and notify the client of the seat's availability. More...
 
void eis_seat_remove (struct eis_seat *seat)
 Remove this seat and all its remaining devices. More...
 
enum eis_event_type eis_event_get_type (struct eis_event *event)
 
struct eis_client * eis_event_get_client (struct eis_event *event)
 
struct eis_client * eis_device_get_client (struct eis_device *device)
 
struct eis_seat * eis_device_get_seat (struct eis_device *device)
 
struct eis_device * eis_device_ref (struct eis_device *device)
 
struct eis_device * eis_device_unref (struct eis_device *device)
 
void * eis_device_get_user_data (struct eis_device *eis_device)
 
void eis_device_set_user_data (struct eis_device *eis_device, void *user_data)
 
const char * eis_device_get_name (struct eis_device *device)
 Return the name of the device. More...
 
void eis_device_set_name (struct eis_device *device, const char *name)
 Set the name of the device. More...
 
bool eis_device_has_capability (struct eis_device *device, enum eis_device_capability cap)
 
void eis_device_allow_capability (struct eis_device *device, enum eis_device_capability cap)
 Allow a capability on the device. More...
 
void eis_device_connect (struct eis_device *device)
 Connects the device. More...
 
void eis_device_disconnect (struct eis_device *device)
 Disconnect the device. More...
 
void eis_device_suspend (struct eis_device *device)
 Notify the client that the device is suspended and that no events from the client will be processed. More...
 
void eis_device_resume (struct eis_device *device)
 Notify the client that the capabilities are resumed and that events from the device will be processed. More...
 
uint32_t eis_device_pointer_get_width (struct eis_device *device)
 Get the width of the absolute pointer device in logical pixels. More...
 
uint32_t eis_device_pointer_get_height (struct eis_device *device)
 
uint32_t eis_device_touch_get_width (struct eis_device *device)
 
uint32_t eis_device_touch_get_height (struct eis_device *device)
 
struct eis_keymap * eis_keymap_new (enum eis_keymap_type type, int fd, size_t size)
 Create a new keymap of the given type. More...
 
size_t eis_keymap_get_size (struct eis_keymap *keymap)
 
enum eis_keymap_type eis_keymap_get_type (struct eis_keymap *keymap)
 Returns the type for this keymap. More...
 
int eis_keymap_get_fd (struct eis_keymap *keymap)
 Return a memmap-able file descriptor pointing to the keymap used by the device. More...
 
struct eis_keymap * eis_keymap_ref (struct eis_keymap *keymap)
 
struct eis_keymap * eis_keymap_unref (struct eis_keymap *keymap)
 
struct eis_device * eis_keymap_get_device (struct eis_keymap *keymap)
 Return the device this keymap belongs to, or NULL if it has not yet been assigned to a device. More...
 
struct eis_keymap * eis_device_keyboard_get_keymap (struct eis_device *device)
 Return the keymap assigned to this device. More...
 
void eis_device_keyboard_set_keymap (struct eis_device *device, struct eis_keymap *keymap)
 Set the keymap on the device. More...
 
struct eis_device * eis_event_get_device (struct eis_event *event)
 Return the device from this event. More...
 
double eis_event_pointer_get_dx (struct eis_event *event)
 For an event of type EIS_EVENT_POINTER_MOTION return the relative x movement in logical pixels. More...
 
double eis_event_pointer_get_dy (struct eis_event *event)
 For an event of type EIS_EVENT_POINTER_MOTION return the relative y movement in logical pixels. More...
 
double eis_event_pointer_get_absolute_x (struct eis_event *event)
 For an event of type EIS_EVENT_POINTER_MOTION_ABSOLUTE return the x position in logical pixels. More...
 
double eis_event_pointer_get_absolute_y (struct eis_event *event)
 For an event of type EIS_EVENT_POINTER_MOTION_ABSOLUTE return the y position in logical pixels. More...
 
uint32_t eis_event_pointer_get_button (struct eis_event *event)
 For an event of type EIS_EVENT_POINTER_BUTTON return the button code as defined in linux/input-event-codes.h. More...
 
bool eis_event_pointer_get_button_is_press (struct eis_event *event)
 For an event of type EIS_EVENT_POINTER_BUTTON return true if the event is a button press, false for a release. More...
 
double eis_event_pointer_get_scroll_x (struct eis_event *event)
 For an event of type EIS_EVENT_POINTER_SCROLL return the x scroll distance in logical pixels. More...
 
double eis_event_pointer_get_scroll_y (struct eis_event *event)
 For an event of type EIS_EVENT_POINTER_SCROLL return the y scroll distance in logical pixels. More...
 
int32_t eis_event_pointer_get_scroll_discrete_x (struct eis_event *event)
 For an event of type EIS_EVENT_POINTER_SCROLL_DISCRETE return the x scroll distance in fractions or multiples of 120. More...
 
int32_t eis_event_pointer_get_scroll_discrete_y (struct eis_event *event)
 For an event of type EIS_EVENT_POINTER_SCROLL_DISCRETE return the y scroll distance in fractions or multiples of 120. More...
 
uint32_t eis_event_keyboard_get_key (struct eis_event *event)
 For an event of type EIS_EVENT_KEYBOARD_KEY return the key code (as defined in include/linux/input-event-codes.h). More...
 
bool eis_event_keyboard_get_key_is_press (struct eis_event *event)
 For an event of type EIS_EVENT_KEYBOARD_KEY return true if the event is a key down, false for a release. More...
 
uint32_t eis_event_touch_get_id (struct eis_event *event)
 For an event of type EIS_EVENT_TOUCH_DOWN, EIS_EVENT_TOUCH_MOTION, or EIS_EVENT_TOUCH_UP, return the tracking ID of the touch. More...
 
double eis_event_touch_get_x (struct eis_event *event)
 For an event of type EIS_EVENT_TOUCH_DOWN, or EIS_EVENT_TOUCH_MOTION, return the x coordinate of the touch. More...
 
double eis_event_touch_get_y (struct eis_event *event)
 For an event of type EIS_EVENT_TOUCH_DOWN, or EIS_EVENT_TOUCH_MOTION, return the y coordinate of the touch. More...