[ANNOUNCE] libei 0.3

Peter Hutterer peter.hutterer at who-t.net
Tue Jun 7 02:31:01 UTC 2022


libei 0.3 is now available. libei is a library to send
Emulated Input (EI) to a matching Emulated Input Server (EIS) which can
receive those events with libeis, also part of this project.

libei uses GitLab releases, for tarballs please see:
https://gitlab.freedesktop.org/libinput/libei/-/releases/0.3

Notable changes since 0.2:
- libei now supports the concept of sender/receiver contexts. A libei context
  in sender mode can send events to the (EIS-created) devices, a libei context
  in receiver mode can receive events from the (EIS-created) devices. This
  allows for libei to be used as a transport layer for captured input events
  (the synergy server use-case).
- a libei context can bind/unbind to seat capabilities individually at any time
- frame events now carry a timestamp
- a helper tool ei-debug-events is now available, this tool can be used in
  e.g. portal implementation to show the events being sent.

This is a development snapshot and neither API nor ABI should be considered
stable. Anyone using libei or libeis must keep both in sync, there are no
accommodations made for libei/libeis from different versions and the wire
protocol may break at any time.

Please see the API documentation here: https://libinput.pages.freedesktop.org/libei/

The git shortlog is below:

David Redondo (1):
      Some doc fixes relating to keymaps

Jonas Ådahl (7):
      libei: Clarify whether a context owns a passed fd
      eis: Clarify mmap restrictions on keymap
      eis: Fix a couple of coding style issues
      eis: Add API to add client getting an fd
      eirpecken: Use the new eis_backend_fd_add_client()
      eis: Remove eis_backend_fd_add_fd()
      Only auto-stop emulating if sender

Peter Hutterer (64):
      Fix a typo in the docs
      Documentation updates
      meson.build: don't pass werror through to munit
      gitlab CI: move the pages job configuration to config.yml
      gitlab CI: add a -Werror job (allowed to fail)
      gitlab CI: drop the requirement for Signed-off-by
      Add SPDX identifiers to all source files
      gitlab CI: fail the CI early if the fork is private
      util: add a helper for fetching the cmdline.
      eis: add the functions to fetch a region back from the device
      test: localize a coordinate set a bit better
      test: add a helper function to mark test progress
      test: aded a test for key events
      util-object: split macro to generate unref into one two
      test: define peck_unrefp in the header file
      doc: document the events a little
      doc: fix the documentation for the eis capabilities
      doc: updates all over the place
      eis: don't allow for region changes once the region was added
      Add concept of active/passive libei contexts
      tools: add active/passive mode to the demo server and client
      test: add test cases for eis -> ei events
      ei: require the client to confirm capabilities rather than drop them
      eis: remove eis_device_set_name(), use eis_device_configure_name()
      eis: after the client binds the seat, drop the capabilities
      meson.build: fix a deprecation warning
      Fix a comment referring to an old implementation
      Remove a stray uint32_t from the documentation
      Correct two comments regarding active vs passive context
      Add ei_is_active()
      eis: the EIS context does not have a is_active setting
      Change to allow dynamic binding of capabilities
      Differentiate between physical and virtual devices
      Rename ei active/passive to sender/receiver
      tools: print the returned negative errno on failure
      tools: fix a few issues in the demo server
      tools: add ei-debug-events
      Whitespace fix
      Improve the "message type" debug output a bit
      Better touch debugging messages
      test: make the dispatch looping easier to understand in the debug logs
      test: use the helper functions to enable the default behaviors
      test: handle frame events in passive ei contexts by default
      ei: frame events must be sent on state emulating, not resumed
      test: add a few missing frame events
      Only send touch up events on destroy if the touch is down
      Enforce a frame after ei_touch_destroy()
      Filter empty frame events
      test: ensure we only get frame events after device events
      Add a bunch of warnings when sending events outside of emulating
      Warn if the touch isn't down for a touch motion
      Flush the frame event before a stop_emulating
      Assert on start_emulating if we're left with a pending frame event
      Add a filter for empty frames on the receiver side
      ei: add receiver handling for empty/flushing frame events
      Remove an outdated comment
      Print the strerror too if a message fails
      Add timestamps to frame events
      util: add the macros to run through a list backwards
      ei: expose ei_event_get_context() internally
      Add a pending event queue for incoming device events
      Retrofit event timestamps to all device events based on the frame
      README: update with info about sender/receiver modes
      libei 0.3

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20220607/c18954ff/attachment.sig>


More information about the wayland-devel mailing list