libei/src
Peter Hutterer 5f9e181073 proto: add support for requesting devices
Add support for a client to request the creation of a new device
from the EIS implementation. This is necessary in situations where the
devices created by the EIS implementation are not (or no longer)
suitable for the client to function correctly.

The primary use-case of this is the upcoming tablet tool support where a
client may need to create multiple tablet tools in response to a new
physical tool brought into proximity locally.

Other use-cases include a client closing a device but requiring that
device (or one with similar capabilities) later.

The implementation in libei is straightforward
- on the client side we have a new function to request the new device:
  ei_seat_request_device_with_capabilities()
- on the server side we have a new event EIS_EVENT_SEAT_DEVICE_REQUESTED
  that can make use of the existing eis_event_seat_has_capability() API

Part-of: <https://gitlab.freedesktop.org/libinput/libei/-/merge_requests/345>
2026-01-06 04:50:46 +00:00
..
brei-proto.h.tmpl brei: move the object_id_t typedefs to the brei-proto.h header 2023-05-18 14:03:26 +10:00
brei-shared.c Swap the object id logging order 2025-12-12 16:20:03 +10:00
brei-shared.h doc: Correct spelling errors in the code documentation 2025-07-02 14:03:34 -07:00
ei-proto.c.tmpl log: remove trailing linebreaks from log messages 2023-05-29 17:54:20 +10:00
ei-proto.h.tmpl brei: move the object_id_t typedefs to the brei-proto.h header 2023-05-18 14:03:26 +10:00
libei-button.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-button.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-callback.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-callback.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-connection.c ei: add ei_ping() and the matching EI_EVENT_PONG 2024-12-18 04:30:01 +00:00
libei-connection.h ei: add ei_ping() and the matching EI_EVENT_PONG 2024-12-18 04:30:01 +00:00
libei-device.c libei: include math.h for fmod 2025-11-03 15:27:38 +10:00
libei-device.h Add a mapping_id to the regions 2023-08-30 09:18:26 +10:00
libei-event.c proto: add a device ready request 2025-10-17 13:38:47 +10:00
libei-event.h ei: Expose ei_event_ref() 2025-08-21 17:08:53 +02:00
libei-fd.c ei: rename ei_set_connection to ei_set_socket 2023-03-03 11:20:42 +10:00
libei-handshake.c ei: revamp the internal sync callback 2024-12-18 04:30:01 +00:00
libei-handshake.h Switch object ids to use the object_id_t typedef 2023-03-03 11:27:01 +10:00
libei-keyboard.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-keyboard.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-log.c util: rename xvasprintf to xvaprintf 2023-02-16 15:29:18 +10:00
libei-ping.c ei: add ei_ping() and the matching EI_EVENT_PONG 2024-12-18 04:30:01 +00:00
libei-pingpong.c ei: remove unused ei_pingpong_new() 2023-06-07 23:08:16 +00:00
libei-pingpong.h ei: remove unused ei_pingpong_new() 2023-06-07 23:08:16 +00:00
libei-pointer-absolute.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-pointer-absolute.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-pointer.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-pointer.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-private.h ei: Send sync done event on last event unref 2025-08-21 17:08:53 +02:00
libei-region.c Add a mapping_id to the regions 2023-08-30 09:18:26 +10:00
libei-region.h Add a mapping_id to the regions 2023-08-30 09:18:26 +10:00
libei-scroll.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-scroll.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-seat.c proto: add support for requesting devices 2026-01-06 04:50:46 +00:00
libei-seat.h protocol: replace the capabilities enum with an interface list 2023-05-02 05:53:25 +00:00
libei-socket.c ei: rename ei_set_connection to ei_set_socket 2023-03-03 11:20:42 +10:00
libei-touchscreen.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei-touchscreen.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libei.c proto: add support for requesting devices 2026-01-06 04:50:46 +00:00
libei.h proto: add support for requesting devices 2026-01-06 04:50:46 +00:00
libeis-button.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-button.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-callback.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-callback.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-client.c proto: add support for requesting devices 2026-01-06 04:50:46 +00:00
libeis-client.h eis: if a client is slow, queue up messages for future delivery 2025-05-02 15:40:47 +10:00
libeis-connection.c eis: add eis_ping() and the matching EIS_EVENT_PONG 2024-12-18 04:30:01 +00:00
libeis-connection.h eis: add eis_ping() and the matching EIS_EVENT_PONG 2024-12-18 04:30:01 +00:00
libeis-device.c eis: allow pausing the device when it is emulating 2025-12-15 10:51:16 +10:00
libeis-device.h proto: add a device ready request 2025-10-17 13:38:47 +10:00
libeis-event.c proto: add support for requesting devices 2026-01-06 04:50:46 +00:00
libeis-event.h eis: Expose eis_event_ref() 2025-08-21 17:08:53 +02:00
libeis-fd.c eis: Remove eis_backend_fd_add_fd() 2022-04-27 02:00:07 +00:00
libeis-handshake.c eis: only send interface versions that the client announced 2025-08-05 07:02:57 +00:00
libeis-handshake.h Switch object ids to use the object_id_t typedef 2023-03-03 11:27:01 +10:00
libeis-keyboard.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-keyboard.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-log.c util: rename xvasprintf to xvaprintf 2023-02-16 15:29:18 +10:00
libeis-ping.c eis: add eis_ping() and the matching EIS_EVENT_PONG 2024-12-18 04:30:01 +00:00
libeis-pingpong.c protocol: widen the callback_data arg for ping/sync to 64bit 2023-05-16 15:09:47 +10:00
libeis-pingpong.h protocol: widen the callback_data arg for ping/sync to 64bit 2023-05-16 15:09:47 +10:00
libeis-pointer-absolute.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-pointer-absolute.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-pointer.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-pointer.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-private.h proto: add support for requesting devices 2026-01-06 04:50:46 +00:00
libeis-region.c Add a mapping_id to the regions 2023-08-30 09:18:26 +10:00
libeis-region.h Add a mapping_id to the regions 2023-08-30 09:18:26 +10:00
libeis-scroll.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-scroll.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-seat.c proto: add support for requesting devices 2026-01-06 04:50:46 +00:00
libeis-seat.h eis: only queue a seat bind event if the caps change 2023-11-08 23:24:45 +00:00
libeis-socket.c eis: implement getting client PID for BSDs after 70cfc6eed2 2025-08-26 09:33:24 +02:00
libeis-touchscreen.c Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis-touchscreen.h Fix MIT license header text 2025-05-29 23:07:48 +00:00
libeis.c proto: add support for requesting devices 2026-01-06 04:50:46 +00:00
libeis.h proto: add support for requesting devices 2026-01-06 04:50:46 +00:00
liboeffis.c oeffis: Correct spelling errors in log messages 2025-07-02 14:03:34 -07:00
liboeffis.h oeffis: OEFFIS_DEVICE_ALL_DEVICES should translate to "all" 2023-12-14 00:58:18 +00:00
meson.build meson.build: apply consistent indentation 2025-11-06 10:56:01 +10:00
util-bits.c util: add some mask helpers 2023-03-03 11:16:48 +10:00
util-bits.h util: add some mask helpers 2023-03-03 11:16:48 +10:00
util-color.h Add SPDX identifiers to all source files 2022-03-03 00:27:36 +00:00
util-io.c doc: Correct spelling errors in the code documentation 2025-07-02 14:03:34 -07:00
util-io.h doc: Correct spelling errors in the code documentation 2025-07-02 14:03:34 -07:00
util-list.c util: add the macros to run through a list backwards 2022-05-17 14:36:39 +10:00
util-list.h util: add the macros to run through a list backwards 2022-05-17 14:36:39 +10:00
util-logger.c util-object: split macro to generate unref into one two 2022-03-03 05:41:15 +00:00
util-logger.h Add SPDX identifiers to all source files 2022-03-03 00:27:36 +00:00
util-macros.h utils: add the etrace macro 2025-07-24 11:07:32 +10:00
util-mem.h util: fix a comment to use the right decimal marker for english 2024-09-11 12:27:38 +10:00
util-memfile.c util/memfile: use MAP_SHARED to create the map 2024-07-29 14:48:34 +10:00
util-memfile.h util/memfile: include stddef for size_t 2024-07-29 14:48:34 +10:00
util-memmap.c util/memmap: add a helper wrapper around mmap 2024-07-29 14:48:34 +10:00
util-memmap.h util/memmap: add a helper wrapper around mmap 2024-07-29 14:48:34 +10:00
util-munit.c util: free the test parameters after the run 2025-12-16 00:32:21 +00:00
util-munit.h util: add support for parametrized tests 2025-12-03 14:51:55 +10:00
util-object.h util: add macros to declare getters and setters 2023-02-13 13:27:57 +10:00
util-sources.c test: add a few non-null checks to make the static analyzer happy 2024-09-11 12:26:40 +10:00
util-sources.h util: allow sources to have write notifications 2023-10-11 00:41:13 +00:00
util-strings.c doc: Correct spelling errors in the code documentation 2025-07-02 14:03:34 -07:00
util-strings.h util: use already computed strlen 2025-06-29 07:43:34 +00:00
util-structs.h Add SPDX identifiers to all source files 2022-03-03 00:27:36 +00:00
util-time.h util: add msleep() 2023-03-03 11:16:48 +10:00
util-tristate.h Remove empty trailing newlines from all files 2023-03-13 08:52:08 +10:00
util-version.h Add a version macro for grepable version numbers 2022-09-07 09:20:27 +10:00