libei
0.2
A library for Emulated Input
|
#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 *file, int lineno, const char *func, const char *message, bool is_continuation) |
The log handler for library logging. More... | |
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) |
bool | eis_client_is_sender (struct eis_client *client) |
Returns true if the client is a sender, false otherwise. More... | |
void | eis_client_property_set (struct eis_client *client, const char *property, const char *value) |
See eis_client_property_set_with_permissions(), but the permissions are left as-is. More... | |
void | eis_client_property_set_with_permissions (struct eis_client *client, const char *property, const char *value, uint32_t permission) |
Change, create or delete a property. More... | |
uint32_t | eis_client_property_get_permissions (struct eis_client *client, const char *propert) |
Return the permissions mask for the given property. More... | |
const char * | eis_client_property_get (struct eis_client *client, const char *property) |
Return the value of the given property or NULL if the property is not set. More... | |
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_client (struct eis *ctx) |
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) |
bool | eis_seat_has_capability (struct eis_seat *seat, enum eis_device_capability cap) |
void | eis_seat_set_user_data (struct eis_seat *eis_seat, void *user_data) |
void | eis_seat_configure_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) |
const char * | eis_event_property_get_name (struct eis_event *event) |
For an event of type EIS_EVENT_CLIENT_PROPERTY, get the property name that has changed. More... | |
const char * | eis_event_property_get_value (struct eis_event *event) |
For an event of type EIS_EVENT_CLIENT_PROPERTY, get the new property value (at the time of the event). More... | |
uint32_t | eis_event_property_get_permissions (struct eis_event *event) |
For an event of type EIS_EVENT_CLIENT_PROPERTY, get the permissions of the property (at the time of the event). More... | |
struct eis_seat * | eis_event_get_seat (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... | |
bool | eis_device_has_capability (struct eis_device *device, enum eis_device_capability cap) |
uint32_t | eis_device_get_width (struct eis_device *device) |
Return the width in mm of a device of type EIS_DEVICE_TYPE_PHYSICAL, or zero otherwise. More... | |
uint32_t | eis_device_get_height (struct eis_device *device) |
Return the height in mm of a device of type EIS_DEVICE_TYPE_PHYSICAL, or zero otherwise. More... | |
struct eis_device * | eis_seat_new_device (struct eis_seat *seat) |
Create a new device on the seat. More... | |
void | eis_device_configure_type (struct eis_device *device, enum eis_device_type type) |
Set the device type for this device. More... | |
enum eis_device_type | eis_device_get_type (struct eis_device *device) |
void | eis_device_configure_name (struct eis_device *device, const char *name) |
void | eis_device_configure_capability (struct eis_device *device, enum eis_device_capability cap) |
void | eis_device_configure_size (struct eis_device *device, uint32_t width, uint32_t height) |
Configure the size in mm of a device of type EIS_DEVICE_TYPE_PHYSICAL. More... | |
struct eis_region * | eis_device_new_region (struct eis_device *device) |
Create a new region on the device of type EIS_DEVICE_TYPE_VIRTUAL with an initial refcount of 1. More... | |
void | eis_region_set_size (struct eis_region *region, uint32_t w, uint32_t h) |
This call has no effect if called after eis_region_add() More... | |
void | eis_region_set_offset (struct eis_region *region, uint32_t x, uint32_t y) |
This call has no effect if called after eis_region_add() More... | |
void | eis_region_set_physical_scale (struct eis_region *region, double scale) |
Set the physical scale for this region. More... | |
void | eis_region_add (struct eis_region *region) |
Add the given region to its device. More... | |
struct eis_region * | eis_device_get_region (struct eis_device *device, size_t index) |
Obtain a region from the device. More... | |
struct eis_region * | eis_region_ref (struct eis_region *region) |
struct eis_region * | eis_region_unref (struct eis_region *region) |
void * | eis_region_get_user_data (struct eis_region *region) |
void | eis_region_set_user_data (struct eis_region *region, void *user_data) |
uint32_t | eis_region_get_x (struct eis_region *region) |
uint32_t | eis_region_get_y (struct eis_region *region) |
uint32_t | eis_region_get_width (struct eis_region *region) |
uint32_t | eis_region_get_height (struct eis_region *region) |
void | eis_device_add (struct eis_device *device) |
Add this device to its seat and notify the client of the device's availability. More... | |
void | eis_device_remove (struct eis_device *device) |
Remove the device. More... | |
void | eis_device_pause (struct eis_device *device) |
Notify the client that the device is paused 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... | |
struct eis_keymap * | eis_device_new_keymap (struct eis_device *device, enum eis_keymap_type type, int fd, size_t size) |
Create a new keymap of the given type. More... | |
void | eis_keymap_add (struct eis_keymap *keymap) |
Set the keymap on the device. 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) |
void * | eis_keymap_get_user_data (struct eis_keymap *eis_keymap) |
void | eis_keymap_set_user_data (struct eis_keymap *eis_keymap, void *user_data) |
struct eis_device * | eis_keymap_get_device (struct eis_keymap *keymap) |
Return the device this keymap belongs to. 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_send_xkb_modifiers (struct eis_device *device, uint32_t depressed, uint32_t latched, uint32_t locked, uint32_t group) |
Notify the client of the current XKB modifier state. More... | |
void | eis_device_start_emulating (struct eis_device *device) |
see ei_device_start_emulating More... | |
void | eis_device_stop_emulating (struct eis_device *device) |
see ei_device_stop_emulating More... | |
void | eis_device_frame (struct eis_device *device) |
see ei_device_frame More... | |
void | eis_device_pointer_motion (struct eis_device *device, double x, double y) |
see ei_device_pointer_motion More... | |
void | eis_device_pointer_motion_absolute (struct eis_device *device, double x, double y) |
see ei_device_pointer_motion_absolute More... | |
void | eis_device_pointer_button (struct eis_device *device, uint32_t button, bool is_press) |
see ei_device_pointer_button More... | |
void | eis_device_pointer_scroll (struct eis_device *device, double x, double y) |
see ei_device_pointer_scroll More... | |
void | eis_device_pointer_scroll_discrete (struct eis_device *device, int32_t x, int32_t y) |
see ei_device_pointer_scroll_discrete More... | |
void | eis_device_pointer_scroll_stop (struct eis_device *device, bool stop_x, bool stop_y) |
see ei_device_pointer_scroll_stop More... | |
void | eis_device_pointer_scroll_cancel (struct eis_device *device, bool cancel_x, bool cancel_y) |
see ei_device_pointer_scroll_cancel More... | |
void | eis_device_keyboard_key (struct eis_device *device, uint32_t keycode, bool is_press) |
see ei_device_keyboard_key More... | |
struct eis_touch * | eis_device_touch_new (struct eis_device *device) |
see ei_device_touch_new More... | |
void | eis_touch_down (struct eis_touch *touch, double x, double y) |
see ei_touch_down More... | |
void | eis_touch_motion (struct eis_touch *touch, double x, double y) |
see ei_touch_motion More... | |
void | eis_touch_up (struct eis_touch *touch) |
see ei_touch_up More... | |
struct eis_touch * | eis_touch_ref (struct eis_touch *touch) |
see ei_touch_ref More... | |
struct eis_touch * | eis_touch_unref (struct eis_touch *touch) |
see ei_touch_unref More... | |
void | eis_touch_set_user_data (struct eis_touch *touch, void *user_data) |
see ei_touch_set_user_data More... | |
void * | eis_touch_get_user_data (struct eis_touch *touch) |
see ei_touch_get_user_data More... | |
struct eis_device * | eis_touch_get_device (struct eis_touch *touch) |
see ei_touch_get_device More... | |
bool | eis_event_seat_has_capability (struct eis_event *event, enum eis_device_capability cap) |
For an event of type EIS_EVENT_SEAT_BIND, return the capabilities requested by the client. 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 or mm, depending on the device type. 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 or mm, depending on the device type. 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 or mm, depending on the device type. 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 or mm, depending on the device type. 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 or mm, depending on the device type. 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 or mm, depending on the device type. More... | |
bool | eis_event_pointer_get_scroll_stop_x (struct eis_event *event) |
For an event of type EIS_EVENT_POINTER_SCROLL_STOP return whether the x axis has stopped scrolling. More... | |
bool | eis_event_pointer_get_scroll_stop_y (struct eis_event *event) |
For an event of type EIS_EVENT_POINTER_SCROLL_STOP return whether the y axis has stopped scrolling. 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 in logical pixels or mm, depending on the device type. 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 in logical pixels or mm, depending on the device type. More... | |