libei 1.3.0
A library for Emulated Input
libei.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2020 Red Hat, Inc.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
14 * Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
23 */
24
25#pragma once
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31#include <stdbool.h>
32#include <stdint.h>
33#include <stddef.h>
34
137struct ei;
138
150struct ei_device;
151
165struct ei_seat;
166
175struct ei_event;
176
184struct ei_keymap;
185
206struct ei_region;
207
234
284
296
522
528const char*
530
534struct ei *
535ei_new(void *user_data);
536
554struct ei *
555ei_new_sender(void *user_data);
556
574struct ei *
575ei_new_receiver(void *user_data);
576
583struct ei *
584ei_ref(struct ei *ei);
585
593struct ei *
594ei_unref(struct ei *ei);
595
601void
602ei_set_user_data(struct ei *ei, void *user_data);
603
608void *
610
614bool
616
626
627struct ei_log_context;
628
633unsigned int
634ei_log_context_get_line(struct ei_log_context *ctx);
635
640const char *
641ei_log_context_get_file(struct ei_log_context *ctx);
642
647const char *
648ei_log_context_get_func(struct ei_log_context *ctx);
649
667typedef void (*ei_log_handler)(struct ei *ei,
668 enum ei_log_priority priority,
669 const char *message,
670 struct ei_log_context *context);
681void
683
687void
688ei_log_set_priority(struct ei *ei, enum ei_log_priority priority);
689
694ei_log_get_priority(const struct ei *ei);
695
704typedef uint64_t (*ei_clock_now_func)(struct ei *ei);
705
711void
713
726void
727ei_configure_name(struct ei * ei, const char *name);
728
750int
751ei_setup_backend_fd(struct ei *ei, int fd);
752
779int
780ei_setup_backend_socket(struct ei *ei, const char *socketpath);
781
788int
789ei_get_fd(struct ei *ei);
790
800void
802
808struct ei_event *
810
827struct ei_event *
829
837uint64_t
838ei_now(struct ei *ei);
839
847void
848ei_seat_set_user_data(struct ei_seat *seat, void *user_data);
849
856void *
858
862const char *
864
872bool
874 enum ei_device_capability cap);
875
893void
895__attribute__((sentinel));
896
908void
910__attribute__((sentinel));
911
912
916struct ei_seat *
917ei_seat_ref(struct ei_seat *seat);
918
922struct ei_seat *
923ei_seat_unref(struct ei_seat *seat);
924
930struct ei *
932
942struct ei_event *
944
948enum ei_event_type
950
960struct ei_device *
962
972uint64_t
974
983struct ei_device *
984ei_device_ref(struct ei_device *device);
985
995struct ei_device *
997
1001struct ei_seat *
1003
1011void
1012ei_device_set_user_data(struct ei_device *device, void *user_data);
1013
1020void *
1022
1029uint32_t
1031
1038uint32_t
1040
1046size_t
1048
1055enum ei_keymap_type
1057
1065int
1067
1078struct ei_device *
1080
1089struct ei_keymap *
1090ei_keymap_ref(struct ei_keymap *keymap);
1091
1101struct ei_keymap *
1103
1107void
1108ei_keymap_set_user_data(struct ei_keymap *keymap, void *user_data);
1109
1113void *
1115
1135void
1137
1143const char *
1145
1151enum ei_device_type
1153
1161bool
1163 enum ei_device_capability cap);
1164
1165
1187struct ei_region *
1188ei_device_get_region(struct ei_device *device, size_t index);
1189
1198struct ei_region *
1199ei_device_get_region_at(struct ei_device *device, double x, double y);
1200
1204struct ei_region *
1205ei_region_ref(struct ei_region *region);
1206
1210struct ei_region *
1212
1216void
1217ei_region_set_user_data(struct ei_region *region, void *user_data);
1218
1222void *
1224
1228uint32_t
1230
1234uint32_t
1236
1240uint32_t
1242
1246uint32_t
1248
1276const char *
1278
1285bool
1286ei_region_contains(struct ei_region *region, double x, double y);
1287
1298bool
1299ei_region_convert_point(struct ei_region *region, double *x, double *y);
1300
1370double
1372
1387/* FIXME: the current API makes it impossible to know when the keymap has
1388 * been consumed so the file stays open forever.
1389 */
1390struct ei_keymap *
1392
1398struct ei_device *
1400
1406struct ei *
1408
1438void
1439ei_device_start_emulating(struct ei_device *device, uint32_t sequence);
1440
1449void
1451
1468void
1469ei_device_frame(struct ei_device *device, uint64_t time);
1470
1483void
1484ei_device_pointer_motion(struct ei_device *device, double x, double y);
1485
1501void
1503 double x, double y);
1504
1519void
1521 uint32_t button, bool is_press);
1522
1541void
1542ei_device_scroll_delta(struct ei_device *device, double x, double y);
1543
1566void
1567ei_device_scroll_discrete(struct ei_device *device, int32_t x, int32_t y);
1568
1598void
1599ei_device_scroll_stop(struct ei_device *device, bool stop_x, bool stop_y);
1600
1629void
1630ei_device_scroll_cancel(struct ei_device *device, bool cancel_x, bool cancel_y);
1631
1652void
1653ei_device_keyboard_key(struct ei_device *device, uint32_t keycode, bool is_press);
1654
1667struct ei_touch *
1669
1683void
1684ei_touch_down(struct ei_touch *touch, double x, double y);
1685
1691void
1692ei_touch_motion(struct ei_touch *touch, double x, double y);
1693
1701void
1702ei_touch_up(struct ei_touch *touch);
1703
1712struct ei_touch *
1713ei_touch_ref(struct ei_touch *touch);
1714
1724struct ei_touch *
1725ei_touch_unref(struct ei_touch *touch);
1726
1734void
1735ei_touch_set_user_data(struct ei_touch *touch, void *user_data);
1736
1743void *
1744ei_touch_get_user_data(struct ei_touch *touch);
1745
1751struct ei_device *
1752ei_touch_get_device(struct ei_touch *touch);
1753
1763struct ei_seat *
1765
1774uint32_t
1776
1784uint32_t
1786
1794uint32_t
1796
1804uint32_t
1806
1814uint32_t
1816
1817
1824double
1826
1833double
1835
1842double
1844
1851double
1853
1860uint32_t
1862
1869bool
1871
1878double
1880
1887double
1889
1896bool
1898
1905bool
1907
1914int32_t
1916
1923int32_t
1925
1932uint32_t
1934
1941bool
1943
1956uint32_t
1958
1966double
1968
1976double
1978
1983#ifdef __cplusplus
1984}
1985#endif
struct ei_keymap * ei_device_keyboard_get_keymap(struct ei_device *device)
Return the keymap for this device or NULL.
uint32_t ei_device_get_width(struct ei_device *device)
Return the width of the device in mm if the device is of type EI_DEVICE_TYPE_PHYSICAL,...
void ei_device_set_user_data(struct ei_device *device, void *user_data)
Set a custom data pointer for this context.
enum ei_device_type ei_device_get_type(struct ei_device *device)
struct ei_region * ei_device_get_region_at(struct ei_device *device, double x, double y)
Return the region that contains the given point x/y (in desktop-wide coordinates) or NULL if the coor...
void ei_device_close(struct ei_device *device)
Notify the server that the client is no longer interested in this device.
struct ei_device * ei_device_unref(struct ei_device *device)
Decrease the refcount of this struct by one.
struct ei * ei_device_get_context(struct ei_device *device)
Return the struct ei context this device is associated with.
struct ei_seat * ei_device_get_seat(struct ei_device *device)
const char * ei_device_get_name(struct ei_device *device)
bool ei_device_has_capability(struct ei_device *device, enum ei_device_capability cap)
Return true if the device has the requested capability.
uint32_t ei_device_get_height(struct ei_device *device)
Return the height of the device in mm if the device is of type EI_DEVICE_TYPE_PHYSICAL,...
struct ei_device * ei_device_ref(struct ei_device *device)
Increase the refcount of this struct by one.
void * ei_device_get_user_data(struct ei_device *device)
Return the custom data pointer for this context.
struct ei_region * ei_device_get_region(struct ei_device *device, size_t index)
Obtain a region from a device of type EI_DEVICE_TYPE_VIRTUAL.
int ei_keymap_get_fd(struct ei_keymap *keymap)
Return a memmap-able file descriptor pointing to the keymap used by the device.
void * ei_keymap_get_user_data(struct ei_keymap *keymap)
size_t ei_keymap_get_size(struct ei_keymap *keymap)
enum ei_keymap_type ei_keymap_get_type(struct ei_keymap *keymap)
Returns the type for this keymap.
struct ei_keymap * ei_keymap_ref(struct ei_keymap *keymap)
Increase the refcount of this struct by one.
struct ei_keymap * ei_keymap_unref(struct ei_keymap *keymap)
Decrease the refcount of this struct by one.
void ei_keymap_set_user_data(struct ei_keymap *keymap, void *user_data)
struct ei_device * ei_keymap_get_device(struct ei_keymap *keymap)
Return the device this keymap belongs to, or NULL if it has not yet been assigned to a device.
struct ei_device * ei_keymap_get_context(struct ei_keymap *keymap)
Return the struct ei_device this keymap is associated with.
const char * ei_log_context_get_func(struct ei_log_context *ctx)
enum ei_log_priority ei_log_get_priority(const struct ei *ei)
unsigned int ei_log_context_get_line(struct ei_log_context *ctx)
const char * ei_log_context_get_file(struct ei_log_context *ctx)
ei_log_priority
Definition libei.h:620
void(* ei_log_handler)(struct ei *ei, enum ei_log_priority priority, const char *message, struct ei_log_context *context)
The log handler for library logging.
Definition libei.h:667
void ei_log_set_priority(struct ei *ei, enum ei_log_priority priority)
void ei_log_set_handler(struct ei *ei, ei_log_handler log_handler)
Change the log handler for this context.
@ EI_LOG_PRIORITY_INFO
Definition libei.h:622
@ EI_LOG_PRIORITY_DEBUG
Definition libei.h:621
@ EI_LOG_PRIORITY_WARNING
Definition libei.h:623
@ EI_LOG_PRIORITY_ERROR
Definition libei.h:624
uint32_t ei_event_touch_get_id(struct ei_event *event)
For an event of type EI_EVENT_TOUCH_DOWN, EI_EVENT_TOUCH_MOTION, or EI_EVENT_TOUCH_UP,...
uint32_t ei_event_emulating_get_sequence(struct ei_event *event)
For an event of type EI_EVENT_DEVICE_START_EMULATING, return the sequence number set by the EIS imple...
double ei_event_scroll_get_dx(struct ei_event *event)
For an event of type EI_EVENT_SCROLL_DELTA return the x scroll distance in logical pixels or mm,...
double ei_event_scroll_get_dy(struct ei_event *event)
For an event of type EI_EVENT_SCROLL_DELTA return the y scroll distance in logical pixels or mm,...
double ei_event_pointer_get_absolute_x(struct ei_event *event)
For an event of type EI_EVENT_POINTER_MOTION_ABSOLUTE return the x position in logical pixels or mm,...
bool ei_event_button_get_is_press(struct ei_event *event)
For an event of type EI_EVENT_BUTTON_BUTTON return true if the event is a button press,...
bool ei_event_scroll_get_stop_y(struct ei_event *event)
For an event of type EI_EVENT_SCROLL_STOP return whether the y axis has stopped scrolling.
uint32_t ei_event_keyboard_get_xkb_mods_locked(struct ei_event *event)
For an event of type EI_EVENT_KEYBOARD_MODIFIERS, get the mask of currently logically locked modifier...
int32_t ei_event_scroll_get_discrete_dy(struct ei_event *event)
For an event of type EI_EVENT_SCROLL_DISCRETE return the y scroll distance in fractions or multiples ...
uint32_t ei_event_keyboard_get_key(struct ei_event *event)
For an event of type EI_EVENT_KEYBOARD_KEY return the key code (as defined in include/linux/input-eve...
double ei_event_touch_get_x(struct ei_event *event)
For an event of type EI_EVENT_TOUCH_DOWN, or EI_EVENT_TOUCH_MOTION, return the x coordinate of the to...
uint32_t ei_event_keyboard_get_xkb_mods_depressed(struct ei_event *event)
For an event of type EI_EVENT_KEYBOARD_MODIFIERS, get the mask of currently logically pressed-down mo...
double ei_event_touch_get_y(struct ei_event *event)
For an event of type EI_EVENT_TOUCH_DOWN, or EI_EVENT_TOUCH_MOTION, return the y coordinate of the to...
double ei_event_pointer_get_dy(struct ei_event *event)
For an event of type EI_EVENT_POINTER_MOTION return the relative y movement in logical pixels or mm,...
bool ei_event_scroll_get_stop_x(struct ei_event *event)
For an event of type EI_EVENT_SCROLL_CANCEL return whether the x axis has cancelled scrolling.
uint32_t ei_event_keyboard_get_xkb_mods_latched(struct ei_event *event)
For an event of type EI_EVENT_KEYBOARD_MODIFIERS, get the mask of currently logically latched modifie...
int32_t ei_event_scroll_get_discrete_dx(struct ei_event *event)
For an event of type EI_EVENT_SCROLL_DISCRETE return the x scroll distance in fractions or multiples ...
uint32_t ei_event_button_get_button(struct ei_event *event)
For an event of type EI_EVENT_BUTTON_BUTTON return the button code as defined in linux/input-event-co...
double ei_event_pointer_get_dx(struct ei_event *event)
For an event of type EI_EVENT_POINTER_MOTION return the relative x movement in logical pixels or mm,...
uint32_t ei_event_keyboard_get_xkb_group(struct ei_event *event)
For an event of type EI_EVENT_KEYBOARD_MODIFIERS, get the logical group state.
double ei_event_pointer_get_absolute_y(struct ei_event *event)
For an event of type EI_EVENT_POINTER_MOTION_ABSOLUTE return the y position in logical pixels or mm,...
bool ei_event_keyboard_get_key_is_press(struct ei_event *event)
For an event of type EI_EVENT_KEYBOARD_KEY return true if the event is a key down,...
void ei_region_set_user_data(struct ei_region *region, void *user_data)
double ei_region_get_physical_scale(struct ei_region *region)
Return the physical scale for this region.
uint32_t ei_region_get_width(struct ei_region *region)
const char * ei_region_get_mapping_id(struct ei_region *region)
Get the unique identifier (representing an external resource) that is attached to this region,...
struct ei_region * ei_region_unref(struct ei_region *region)
void * ei_region_get_user_data(struct ei_region *region)
uint32_t ei_region_get_y(struct ei_region *region)
bool ei_region_contains(struct ei_region *region, double x, double y)
Return true if the point x/y (in desktop-wide coordinates) is within region.
uint32_t ei_region_get_x(struct ei_region *region)
bool ei_region_convert_point(struct ei_region *region, double *x, double *y)
Convert the point x/y in a desktop-wide coordinate system into the corresponding point relative to th...
struct ei_region * ei_region_ref(struct ei_region *region)
uint32_t ei_region_get_height(struct ei_region *region)
void ei_seat_set_user_data(struct ei_seat *seat, void *user_data)
Set a custom data pointer for this context.
struct ei * ei_seat_get_context(struct ei_seat *seat)
Return the struct ei context this seat is associated with.
void ei_seat_bind_capabilities(struct ei_seat *seat,...) __attribute__((sentinel))
Bind this client to the given seat capabilities, terminated by NULL.
const char * ei_seat_get_name(struct ei_seat *seat)
void * ei_seat_get_user_data(struct ei_seat *seat)
Return the custom data pointer for this context.
struct ei_seat * ei_seat_ref(struct ei_seat *seat)
bool ei_seat_has_capability(struct ei_seat *seat, enum ei_device_capability cap)
Return true if the capabilitiy is available on this seat or false otherwise.
struct ei_seat * ei_seat_unref(struct ei_seat *seat)
void ei_seat_unbind_capabilities(struct ei_seat *seat,...) __attribute__((sentinel))
Unbind a seat's capabilities, terminatd by NULL.
void ei_device_stop_emulating(struct ei_device *device)
Notify the EIS implementation that the given device is no longer sending events.
void ei_device_start_emulating(struct ei_device *device, uint32_t sequence)
Notify the EIS implementation that the given device is about to start sending events.
struct ei_device * ei_touch_get_device(struct ei_touch *touch)
void ei_touch_down(struct ei_touch *touch, double x, double y)
This function can only be called once on an ei_touch object.
void ei_device_scroll_cancel(struct ei_device *device, bool cancel_x, bool cancel_y)
Generate a scroll cancel event on a device with the EI_DEVICE_CAP_SCROLL capability.
void ei_device_pointer_motion_absolute(struct ei_device *device, double x, double y)
Generate an absolute motion event on a device with the EI_DEVICE_CAP_POINTER_ABSOLUTE capability.
void ei_touch_up(struct ei_touch *touch)
Release this touch.
void ei_device_scroll_delta(struct ei_device *device, double x, double y)
Generate a smooth (pixel-precise) scroll event on a device with the EI_DEVICE_CAP_SCROLL capability.
void * ei_touch_get_user_data(struct ei_touch *touch)
Return the custom data pointer for this context.
void ei_device_scroll_stop(struct ei_device *device, bool stop_x, bool stop_y)
Generate a scroll stop event on a device with the EI_DEVICE_CAP_SCROLL capability.
void ei_device_button_button(struct ei_device *device, uint32_t button, bool is_press)
Generate a button event on a device with the EI_DEVICE_CAP_BUTTON capability.
struct ei_touch * ei_touch_ref(struct ei_touch *touch)
Increase the refcount of this struct by one.
void ei_touch_motion(struct ei_touch *touch, double x, double y)
Move this touch to the new coordinates.
void ei_device_keyboard_key(struct ei_device *device, uint32_t keycode, bool is_press)
Generate a key event on a device with the EI_DEVICE_CAP_KEYBOARD capability.
void ei_device_frame(struct ei_device *device, uint64_t time)
Generate a frame event to group the current set of events into a logical hardware event.
void ei_device_scroll_discrete(struct ei_device *device, int32_t x, int32_t y)
Generate a discrete scroll event on a device with the EI_DEVICE_CAP_SCROLL capability.
struct ei_touch * ei_touch_unref(struct ei_touch *touch)
Decrease the refcount of this struct by one.
struct ei_touch * ei_device_touch_new(struct ei_device *device)
Initiate a new touch on a device with the EI_DEVICE_CAP_TOUCH capability.
void ei_device_pointer_motion(struct ei_device *device, double x, double y)
Generate a relative motion event on a device with the EI_DEVICE_CAP_POINTER capability.
void ei_touch_set_user_data(struct ei_touch *touch, void *user_data)
Set a custom data pointer for this context.
int ei_setup_backend_socket(struct ei *ei, const char *socketpath)
Set this ei context to use the socket backend.
bool ei_is_sender(struct ei *ei)
Returns true if the context is was created with ei_new_sender() or false otherwise.
void ei_clock_set_now_func(struct ei *, ei_clock_now_func func)
Override the function that returns the current time ei_now().
struct ei * ei_new_receiver(void *user_data)
Create a new receiver ei context.
void ei_dispatch(struct ei *ei)
Main event dispatching function.
int ei_get_fd(struct ei *ei)
libei keeps a single file descriptor for all events.
void ei_set_user_data(struct ei *ei, void *user_data)
Set a custom data pointer for this context.
struct ei_seat * ei_event_get_seat(struct ei_event *event)
Return the seat from this event.
ei_device_type
The device type determines what the device represents.
Definition libei.h:230
struct ei * ei_unref(struct ei *ei)
Decrease the refcount of this struct by one.
struct ei * ei_new_sender(void *user_data)
Create a new sender ei context.
uint64_t ei_now(struct ei *ei)
struct ei_device * ei_event_get_device(struct ei_event *event)
Return the device from this event.
struct ei_event * ei_peek_event(struct ei *ei)
Returns the next event in the internal event queue (or NULL) without removing that event from the que...
int ei_setup_backend_fd(struct ei *ei, int fd)
Initialize the ei context on the given socket file descriptor.
ei_keymap_type
The set of supported keymap types for a struct ei_keymap.
Definition libei.h:290
uint64_t(* ei_clock_now_func)(struct ei *ei)
Optional override function for ei_now().
Definition libei.h:704
uint64_t ei_event_get_time(struct ei_event *event)
Return the time for the event of type EI_EVENT_FRAME in microseconds.
ei_device_capability
The set of supported capabilities.
Definition libei.h:258
struct ei_event * ei_get_event(struct ei *ei)
Return the next event from the event queue, removing it from the queue.
struct ei_event * ei_event_unref(struct ei_event *event)
Release resources associated with this event.
enum ei_event_type ei_event_get_type(struct ei_event *event)
ei_event_type
Definition libei.h:297
void ei_configure_name(struct ei *ei, const char *name)
Set the name for this client.
const char * ei_event_type_to_string(enum ei_event_type)
This is a debugging helper to return a string of the name of the event type, or NULL if the event typ...
struct ei * ei_ref(struct ei *ei)
Increase the refcount of this struct by one.
struct ei * ei_new(void *user_data)
This is an alias for ei_new_sender.
void * ei_get_user_data(struct ei *ei)
Return the custom data pointer for this context.
@ EI_DEVICE_TYPE_PHYSICAL
Definition libei.h:232
@ EI_DEVICE_TYPE_VIRTUAL
Definition libei.h:231
@ EI_KEYMAP_TYPE_XKB
A libxkbcommon-compatible XKB keymap.
Definition libei.h:294
@ EI_DEVICE_CAP_POINTER
The device can send relative motion events.
Definition libei.h:262
@ EI_DEVICE_CAP_SCROLL
The device can send scroll events.
Definition libei.h:278
@ EI_DEVICE_CAP_POINTER_ABSOLUTE
The device can send absolute motion events.
Definition libei.h:266
@ EI_DEVICE_CAP_TOUCH
The device can send touch events.
Definition libei.h:274
@ EI_DEVICE_CAP_BUTTON
The device can send button events.
Definition libei.h:282
@ EI_DEVICE_CAP_KEYBOARD
The device can send keyboard events.
Definition libei.h:270
@ EI_EVENT_SEAT_REMOVED
The server has removed a seat previously available to this client.
Definition libei.h:343
@ EI_EVENT_POINTER_MOTION_ABSOLUTE
An absolute motion event with absolute position within the device's regions or size,...
Definition libei.h:446
@ EI_EVENT_POINTER_MOTION
A relative motion event with delta coordinates in logical pixels or mm, depending on the device type.
Definition libei.h:437
@ EI_EVENT_SCROLL_DELTA
A vertical and/or horizontal scroll event with logical-pixels or mm precision, depending on the devic...
Definition libei.h:463
@ EI_EVENT_DEVICE_START_EMULATING
The server is about to send events for a device.
Definition libei.h:420
@ EI_EVENT_SCROLL_DISCRETE
A vertical and/or horizontal scroll event with a discrete range in logical scroll steps,...
Definition libei.h:485
@ EI_EVENT_SCROLL_STOP
An ongoing scroll sequence stopped.
Definition libei.h:470
@ EI_EVENT_SEAT_ADDED
The server has added a seat available to this client.
Definition libei.h:331
@ EI_EVENT_FRAME
"Hardware" frame event.
Definition libei.h:404
@ EI_EVENT_DEVICE_REMOVED
The server has removed a device belonging to this client.
Definition libei.h:366
@ EI_EVENT_DEVICE_RESUMED
The client may send events.
Definition libei.h:378
@ EI_EVENT_BUTTON_BUTTON
A button press or release event.
Definition libei.h:454
@ EI_EVENT_DEVICE_ADDED
The server has added a device for this client.
Definition libei.h:354
@ EI_EVENT_TOUCH_DOWN
Event for a single touch set down on the device's logical surface.
Definition libei.h:504
@ EI_EVENT_DEVICE_PAUSED
Any events sent from this device will be discarded until the next resume.
Definition libei.h:374
@ EI_EVENT_CONNECT
The server has approved the connection to this client.
Definition libei.h:306
@ EI_EVENT_DEVICE_STOP_EMULATING
The server stopped emulating events on this device, see EIS_EVENT_DEVICE_START_EMULATING.
Definition libei.h:428
@ EI_EVENT_TOUCH_UP
Event for a single touch released from the device's logical surface.
Definition libei.h:512
@ EI_EVENT_KEYBOARD_KEY
A key press or release event.
Definition libei.h:493
@ EI_EVENT_TOUCH_MOTION
Event for a single currently-down touch changing position (or other properties).
Definition libei.h:520
@ EI_EVENT_DISCONNECT
The server has disconnected this client - all resources left to reference this server are now obsolet...
Definition libei.h:320
@ EI_EVENT_SCROLL_CANCEL
An ongoing scroll sequence was cancelled.
Definition libei.h:477
@ EI_EVENT_KEYBOARD_MODIFIERS
The server has changed the modifier state on the device's keymap.
Definition libei.h:394
A single device to generate input events from.
An event received from the EIS implementation.
An keymap for a device with the EI_DEVICE_CAP_KEYBOARD capability.
A rectangular region, defined by an x/y offset and a width and a height.
A logical seat for a group of devices.
The main context to interact with libei.