libei 1.3.0
A library for Emulated Input
libeis.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
26#pragma once
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#include <stddef.h>
33#include <stdbool.h>
34#include <stdint.h>
35
124struct eis;
128struct eis_client;
132struct eis_device;
136struct eis_seat;
140struct eis_event;
144struct eis_keymap;
148struct eis_touch;
149
178struct eis_region;
179
206
219
227
350
356const char*
358
362struct eis *
363eis_new(void *user_data);
364
374
378struct eis_log_context;
379
384unsigned int
385eis_log_context_get_line(struct eis_log_context *ctx);
386
391const char *
392eis_log_context_get_file(struct eis_log_context *ctx);
393
398const char *
399eis_log_context_get_func(struct eis_log_context *ctx);
400
413typedef void (*eis_log_handler)(struct eis *eis,
414 enum eis_log_priority priority,
415 const char *message,
416 struct eis_log_context *ctx);
427void
429
433void
435
441
450typedef uint64_t (*eis_clock_now_func)(struct eis *eis);
451
457void
459
460struct eis *
461eis_ref(struct eis *eis);
462
463struct eis *
465
466void *
468
469void
470eis_set_user_data(struct eis *eis, void *user_data);
471
480int
482
488int
490
500int
501eis_setup_backend_socket(struct eis *ctx, const char *path);
502
509int
511
521void
523
534struct eis_event *
536
553struct eis_event *
555
565struct eis_event *
567
570
571struct eis_client *
573
574struct eis_seat *
576
584bool
586
593struct eis_device *
595
605uint64_t
607
608
609
610struct eis_client *
612
613struct eis_client *
615
616void *
618
619void
621
622struct eis*
624
630bool
632
637const char *
639
649void
651
660void
662
675struct eis_seat *
676eis_client_new_seat(struct eis_client *client, const char *name);
677
681struct eis_seat *
682eis_seat_ref(struct eis_seat *seat);
683
687struct eis_seat *
689
693struct eis_client *
695
699const char *
701
705void *
707
711void
712eis_seat_set_user_data(struct eis_seat *eis_seat, void *user_data);
713
717bool
719 enum eis_device_capability cap);
720
733void
735 enum eis_device_capability cap);
736
743void
744eis_seat_add(struct eis_seat *seat);
745
751void
753
757struct eis *
759
763struct eis *
765
769struct eis_client *
771
775struct eis_seat *
777
781struct eis_device *
783
787struct eis_device *
789
793void *
795
799void
801
809const char *
811
815bool
817 enum eis_device_capability cap);
818
825uint32_t
827
834uint32_t
836
856struct eis_device *
858
867void
869
875
879void
880eis_device_configure_name(struct eis_device *device, const char *name);
881
885void
887
902void
903eis_device_configure_size(struct eis_device *device, uint32_t width, uint32_t height);
904
917struct eis_region *
919
925void
926eis_region_set_size(struct eis_region *region, uint32_t w, uint32_t h);
927
933void
934eis_region_set_offset(struct eis_region *region, uint32_t x, uint32_t y);
935
948void
949eis_region_set_physical_scale(struct eis_region *region, double scale);
950
974void
975eis_region_set_mapping_id(struct eis_region *region, const char *mapping_id);
976
995const char *
997
1006void
1008
1028struct eis_region *
1029eis_device_get_region(struct eis_device *device, size_t index);
1030
1039struct eis_region *
1040eis_device_get_region_at(struct eis_device *device, double x, double y);
1041
1045struct eis_region *
1047
1051struct eis_region *
1053
1057void *
1059
1063void
1064eis_region_set_user_data(struct eis_region *region, void *user_data);
1065
1069uint32_t
1071
1075uint32_t
1077
1081uint32_t
1083
1087uint32_t
1089
1093double
1095
1101bool
1102eis_region_contains(struct eis_region *region, double x, double y);
1103
1113void
1115
1123void
1125
1146void
1148
1157void
1159
1179struct eis_keymap *
1181 enum eis_keymap_type type, int fd, size_t size);
1182
1198void
1200
1205size_t
1207
1214enum eis_keymap_type
1216
1224int
1226
1230struct eis_keymap *
1232
1236struct eis_keymap *
1238
1242void *
1244
1248void
1250
1256struct eis_device *
1258
1266struct eis_keymap *
1268
1274void
1276 uint32_t depressed,
1277 uint32_t latched,
1278 uint32_t locked,
1279 uint32_t group);
1280
1286void
1287eis_device_start_emulating(struct eis_device *device, uint32_t sequence);
1288
1294void
1296
1302void
1303eis_device_frame(struct eis_device *device, uint64_t time);
1304
1310void
1311eis_device_pointer_motion(struct eis_device *device, double x, double y);
1312
1318void
1320 double x, double y);
1321
1327void
1329 uint32_t button, bool is_press);
1330
1336void
1337eis_device_scroll_delta(struct eis_device *device, double x, double y);
1338
1344void
1345eis_device_scroll_discrete(struct eis_device *device, int32_t x, int32_t y);
1346
1352void
1353eis_device_scroll_stop(struct eis_device *device, bool stop_x, bool stop_y);
1354
1360void
1361eis_device_scroll_cancel(struct eis_device *device, bool cancel_x, bool cancel_y);
1362
1368void
1369eis_device_keyboard_key(struct eis_device *device, uint32_t keycode, bool is_press);
1370
1376struct eis_touch *
1378
1384void
1385eis_touch_down(struct eis_touch *touch, double x, double y);
1386
1392void
1393eis_touch_motion(struct eis_touch *touch, double x, double y);
1394
1400void
1402
1408struct eis_touch *
1410
1416struct eis_touch *
1418
1424void
1425eis_touch_set_user_data(struct eis_touch *touch, void *user_data);
1426
1432void *
1434
1440struct eis_device *
1442
1451uint32_t
1453
1460double
1462
1469double
1471
1478double
1480
1487double
1489
1496uint32_t
1498
1505bool
1507
1514double
1516
1523double
1525
1535bool
1537
1547bool
1549
1556int32_t
1558
1565int32_t
1567
1574uint32_t
1576
1583bool
1585
1598uint32_t
1600
1608double
1610
1618double
1620
1628uint64_t
1629eis_now(struct eis *eis);
1630
1635#ifdef __cplusplus
1636}
1637#endif
void eis_device_configure_type(struct eis_device *device, enum eis_device_type type)
Set the device type for this device.
bool eis_device_has_capability(struct eis_device *device, enum eis_device_capability cap)
void eis_device_remove(struct eis_device *device)
Remove the device.
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.
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.
void eis_device_set_user_data(struct eis_device *eis_device, void *user_data)
struct eis_device * eis_device_unref(struct eis_device *device)
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.
void * eis_device_get_user_data(struct eis_device *eis_device)
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...
const char * eis_device_get_name(struct eis_device *device)
Return the name of the device.
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.
struct eis_device * eis_device_ref(struct eis_device *device)
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.
struct eis_seat * eis_device_get_seat(struct eis_device *device)
void eis_device_configure_name(struct eis_device *device, const char *name)
enum eis_device_type eis_device_get_type(struct eis_device *device)
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.
void eis_device_configure_capability(struct eis_device *device, enum eis_device_capability cap)
struct eis_keymap * eis_device_keyboard_get_keymap(struct eis_device *device)
Return the keymap assigned to this device.
struct eis_region * eis_device_get_region_at(struct eis_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...
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.
struct eis * eis_device_get_context(struct eis_device *device)
struct eis_region * eis_device_get_region(struct eis_device *device, size_t index)
Obtain a region from the device.
void eis_device_add(struct eis_device *device)
Add this device to its seat and notify the client of the device's availability.
struct eis_client * eis_device_get_client(struct eis_device *device)
struct eis_keymap * eis_keymap_unref(struct eis_keymap *keymap)
size_t eis_keymap_get_size(struct eis_keymap *keymap)
void * eis_keymap_get_user_data(struct eis_keymap *eis_keymap)
enum eis_keymap_type eis_keymap_get_type(struct eis_keymap *keymap)
Returns the type for this keymap.
struct eis_keymap * eis_keymap_ref(struct eis_keymap *keymap)
int eis_keymap_get_fd(struct eis_keymap *keymap)
Return a memmap-able file descriptor pointing to the keymap used by the device.
struct eis_device * eis_keymap_get_device(struct eis_keymap *keymap)
Return the device this keymap belongs to.
void eis_keymap_set_user_data(struct eis_keymap *eis_keymap, void *user_data)
void eis_keymap_add(struct eis_keymap *keymap)
Set the keymap on the device.
void(* eis_log_handler)(struct eis *eis, enum eis_log_priority priority, const char *message, struct eis_log_context *ctx)
The log handler for library logging.
Definition libeis.h:413
eis_log_priority
Definition libeis.h:368
void eis_log_set_handler(struct eis *eis, eis_log_handler log_handler)
Change the log handler for this context.
const char * eis_log_context_get_func(struct eis_log_context *ctx)
void eis_log_set_priority(struct eis *eis, enum eis_log_priority priority)
unsigned int eis_log_context_get_line(struct eis_log_context *ctx)
enum eis_log_priority eis_log_get_priority(const struct eis *eis)
const char * eis_log_context_get_file(struct eis_log_context *ctx)
@ EIS_LOG_PRIORITY_INFO
Definition libeis.h:370
@ EIS_LOG_PRIORITY_WARNING
Definition libeis.h:371
@ EIS_LOG_PRIORITY_ERROR
Definition libeis.h:372
@ EIS_LOG_PRIORITY_DEBUG
Definition libeis.h:369
void eis_device_pointer_motion_absolute(struct eis_device *device, double x, double y)
see ei_device_pointer_motion_absolute
void eis_touch_set_user_data(struct eis_touch *touch, void *user_data)
see ei_touch_set_user_data
void * eis_touch_get_user_data(struct eis_touch *touch)
see ei_touch_get_user_data
void eis_device_pointer_motion(struct eis_device *device, double x, double y)
see ei_device_pointer_motion
void eis_device_scroll_stop(struct eis_device *device, bool stop_x, bool stop_y)
see ei_device_scroll_stop
struct eis_touch * eis_touch_ref(struct eis_touch *touch)
see ei_touch_ref
struct eis_touch * eis_touch_unref(struct eis_touch *touch)
see ei_touch_unref
void eis_touch_up(struct eis_touch *touch)
see ei_touch_up
void eis_device_start_emulating(struct eis_device *device, uint32_t sequence)
see ei_device_start_emulating
void eis_touch_motion(struct eis_touch *touch, double x, double y)
see ei_touch_motion
void eis_device_scroll_delta(struct eis_device *device, double x, double y)
see ei_device_scroll_delta
struct eis_touch * eis_device_touch_new(struct eis_device *device)
see ei_device_touch_new
void eis_device_stop_emulating(struct eis_device *device)
see ei_device_stop_emulating
void eis_touch_down(struct eis_touch *touch, double x, double y)
see ei_touch_down
void eis_device_keyboard_key(struct eis_device *device, uint32_t keycode, bool is_press)
see ei_device_keyboard_key
void eis_device_scroll_discrete(struct eis_device *device, int32_t x, int32_t y)
see ei_device_scroll_discrete
void eis_device_button_button(struct eis_device *device, uint32_t button, bool is_press)
see ei_device_button_button
struct eis_device * eis_touch_get_device(struct eis_touch *touch)
see ei_touch_get_device
void eis_device_frame(struct eis_device *device, uint64_t time)
see ei_device_frame
void eis_device_scroll_cancel(struct eis_device *device, bool cancel_x, bool cancel_y)
see ei_device_scroll_cancel
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()
struct eis_region * eis_region_unref(struct eis_region *region)
void eis_region_add(struct eis_region *region)
Add the given region to its device.
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()
uint32_t eis_region_get_y(struct eis_region *region)
void * eis_region_get_user_data(struct eis_region *region)
uint32_t eis_region_get_height(struct eis_region *region)
bool eis_region_contains(struct eis_region *region, double x, double y)
void eis_region_set_user_data(struct eis_region *region, void *user_data)
void eis_region_set_physical_scale(struct eis_region *region, double scale)
Set the physical scale for this region.
uint32_t eis_region_get_width(struct eis_region *region)
void eis_region_set_mapping_id(struct eis_region *region, const char *mapping_id)
Attach a unique identifier representing an external resource to this region.
const char * eis_region_get_mapping_id(struct eis_region *region)
Get the unique ID for this region previously set by this caller, if any, or NULL if the client does n...
uint32_t eis_region_get_x(struct eis_region *region)
double eis_region_get_physical_scale(struct eis_region *region)
struct eis_region * eis_region_ref(struct eis_region *region)
struct eis_seat * eis_seat_unref(struct eis_seat *seat)
void eis_seat_remove(struct eis_seat *seat)
Remove this seat and all its remaining devices.
struct eis_client * eis_seat_get_client(struct eis_seat *eis_seat)
void eis_seat_add(struct eis_seat *seat)
Add this seat to its client and notify the client of the seat's availability.
struct eis * eis_seat_get_context(struct eis_seat *seat)
struct eis_device * eis_seat_new_device(struct eis_seat *seat)
Create a new device on the seat.
struct eis_seat * eis_seat_ref(struct eis_seat *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_configure_capability(struct eis_seat *seat, enum eis_device_capability cap)
Allow a capability on the seat.
void eis_seat_set_user_data(struct eis_seat *eis_seat, void *user_data)
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-ev...
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,...
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 ...
int32_t eis_event_scroll_get_discrete_dy(struct eis_event *event)
For an event of type EIS_EVENT_SCROLL_DISCRETE return the y scroll distance in fractions or multiples...
double eis_event_scroll_get_dy(struct eis_event *event)
For an event of type EIS_EVENT_SCROLL_DELTA return the y scroll distance in logical pixels or mm,...
int32_t eis_event_scroll_get_discrete_dx(struct eis_event *event)
For an event of type EIS_EVENT_SCROLL_DISCRETE return the x scroll distance in fractions or multiples...
double eis_event_scroll_get_dx(struct eis_event *event)
For an event of type EIS_EVENT_SCROLL_DELTA return the x scroll distance in logical pixels or mm,...
uint32_t eis_event_button_get_button(struct eis_event *event)
For an event of type EIS_EVENT_BUTTON_BUTTON return the button code as defined in linux/input-event-c...
bool eis_event_scroll_get_stop_x(struct eis_event *event)
For an event of type EIS_EVENT_SCROLL_STOP return whether the x axis has stopped scrolling.
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,...
bool eis_event_scroll_get_stop_y(struct eis_event *event)
For an event of type EIS_EVENT_SCROLL_STOP return whether the y axis has stopped scrolling.
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 ...
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,...
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,...
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,...
bool eis_event_button_get_is_press(struct eis_event *event)
For an event of type EIS_EVENT_BUTTON_BUTTON return true if the event is a button press,...
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,...
uint32_t eis_event_emulating_get_sequence(struct eis_event *event)
For an event of type EIS_EVENT_DEVICE_START_EMULATING, return the sequence number set by the ei clien...
int eis_backend_fd_add_client(struct eis *ctx)
Add a new client to a context set up with eis_setup_backend_fd().
const char * eis_event_type_to_string(enum eis_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 eis_event * eis_event_unref(struct eis_event *event)
Release resources associated with this event.
eis_device_type
The device type determines what the device represents.
Definition libeis.h:202
void eis_client_set_user_data(struct eis_client *eis_client, void *user_data)
eis_device_capability
Definition libeis.h:211
struct eis_seat * eis_event_get_seat(struct eis_event *event)
struct eis * eis_client_get_context(struct eis_client *client)
eis_event_type
Definition libeis.h:231
eis_keymap_type
Definition libeis.h:224
void eis_client_connect(struct eis_client *client)
Allow connection from the client.
bool eis_client_is_sender(struct eis_client *client)
Returns true if the client is a sender, false otherwise.
struct eis_seat * eis_client_new_seat(struct eis_client *client, const char *name)
Create a new logical seat with a given name.
uint64_t(* eis_clock_now_func)(struct eis *eis)
Optional override function for eis_now().
Definition libeis.h:450
enum eis_event_type eis_event_get_type(struct eis_event *event)
int eis_get_fd(struct eis *eis)
libeis keeps a single file descriptor for all events.
struct eis * eis_new(void *user_data)
Create a new libeis context with a refcount of 1.
void eis_clock_set_now_func(struct eis *, eis_clock_now_func func)
Override the function that returns the current time eis_now().
const char * eis_client_get_name(struct eis_client *client)
Return the name set by this client.
struct eis * eis_ref(struct eis *eis)
uint64_t eis_event_get_time(struct eis_event *event)
Return the time for the event of type EIS_EVENT_FRAME in microseconds.
void * eis_client_get_user_data(struct eis_client *eis_client)
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.
struct eis_device * eis_event_get_device(struct eis_event *event)
Return the device from this event.
void eis_set_user_data(struct eis *eis, void *user_data)
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 que...
void eis_client_disconnect(struct eis_client *client)
Disconnect this client.
struct eis_client * eis_client_unref(struct eis_client *client)
struct eis * eis_unref(struct eis *eis)
uint64_t eis_now(struct eis *eis)
int eis_setup_backend_socket(struct eis *ctx, const char *path)
Initialize the context with a UNIX socket name.
struct eis_client * eis_event_get_client(struct eis_event *event)
struct eis_client * eis_client_ref(struct eis_client *client)
int eis_setup_backend_fd(struct eis *ctx)
Initialize the context that can take pre-configured socket file descriptors, see eis_backend_fd_add_c...
void eis_dispatch(struct eis *eis)
Main event dispatching function.
void * eis_get_user_data(struct eis *eis)
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.
@ EIS_DEVICE_TYPE_VIRTUAL
Definition libeis.h:203
@ EIS_DEVICE_TYPE_PHYSICAL
Definition libeis.h:204
@ EIS_DEVICE_CAP_POINTER
Definition libeis.h:212
@ EIS_DEVICE_CAP_SCROLL
Definition libeis.h:216
@ EIS_DEVICE_CAP_TOUCH
Definition libeis.h:215
@ EIS_DEVICE_CAP_KEYBOARD
Definition libeis.h:214
@ EIS_DEVICE_CAP_BUTTON
Definition libeis.h:217
@ EIS_DEVICE_CAP_POINTER_ABSOLUTE
Definition libeis.h:213
@ EIS_EVENT_TOUCH_UP
Event for a single touch released from the device's logical surface.
Definition libeis.h:343
@ EIS_EVENT_SCROLL_STOP
An ongoing scroll sequence stopped.
Definition libeis.h:316
@ EIS_EVENT_DEVICE_START_EMULATING
The client is about to send events for a device.
Definition libeis.h:286
@ EIS_EVENT_BUTTON_BUTTON
A button press or release event.
Definition libeis.h:307
@ EIS_EVENT_CLIENT_DISCONNECT
The client has disconnected, any pending requests for this client should be discarded.
Definition libeis.h:243
@ EIS_EVENT_DEVICE_CLOSED
The client no longer listens to events from this device.
Definition libeis.h:256
@ EIS_EVENT_TOUCH_DOWN
Event for a single touch set down on the device's logical surface.
Definition libeis.h:338
@ EIS_EVENT_POINTER_MOTION
A relative motion event with delta coordinates in logical pixels or mm, depending on the device type.
Definition libeis.h:298
@ EIS_EVENT_FRAME
"Hardware" frame event.
Definition libeis.h:268
@ EIS_EVENT_DEVICE_STOP_EMULATING
Stop emulating events on this device, see EIS_EVENT_DEVICE_START_EMULATING.
Definition libeis.h:290
@ EIS_EVENT_SCROLL_DELTA
A vertical and/or horizontal scroll event with logical-pixels or mm precision, depending on the devic...
Definition libeis.h:312
@ EIS_EVENT_SCROLL_CANCEL
An ongoing scroll sequence was cancelled.
Definition libeis.h:320
@ EIS_EVENT_TOUCH_MOTION
Event for a single currently-down touch changing position (or other properties).
Definition libeis.h:348
@ EIS_EVENT_CLIENT_CONNECT
A client has connected.
Definition libeis.h:238
@ EIS_EVENT_KEYBOARD_KEY
A key press or release event.
Definition libeis.h:330
@ EIS_EVENT_SCROLL_DISCRETE
A vertical and/or horizontal scroll event with a discrete range in logical scroll steps,...
Definition libeis.h:325
@ EIS_EVENT_SEAT_BIND
The client wants to bind or unbind a capability on this seat.
Definition libeis.h:250
@ EIS_EVENT_POINTER_MOTION_ABSOLUTE
An absolute motion event with absolute position within the device's regions or size,...
Definition libeis.h:303
@ EIS_KEYMAP_TYPE_XKB
Definition libeis.h:225
Regions are only available on devices of type EIS_DEVICE_TYPE_VIRTUAL.