[ANNOUNCE] libei 1.0.0

Peter Hutterer peter.hutterer at who-t.net
Wed May 17 02:58:36 UTC 2023

libei 1.0.0 RC1 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:

This release marks the C API and the protocol stable. 1.0 is expected
very soon unless someone finds some serious issues with the current
code that warrants another RC.

Notable changes since 0.5:
- the protocol no longer has a fixed capability enum, the bitmask is
  based on the available interfaces. See the ei_seat.capability event
  in the protocol documentation 
- new interfaces for button and scroll - these were split out from the
  previously merged pointer/pointer_absolute interfaces. Clients need to
  bind to those in addition to binding to pointer and/or
  pointer_absolute. EIS implementations need to provide those separately
  in addition to pointer/pointer_absolute.
- a number of APIs have been renamed to adjust for this, e.g.
  ei_event_pointer_get_scroll_x() is now ei_event_scroll_get_dx()
- ei_seat_bind_capability() was removed, use ei_seat_bind_capabilities()
- the pkgconfig files are now libei-1.0.pc, libeis-1.0.pc,
- enabling tests are now a meson feature, i.e. use -Dtests=enabled

All of the above are largely search/replace. Don't forget to bind to the
new button/scroll capabilities.

Please see the documentation here:

The git shortlog is below:

Peter Hutterer (48):
      ei: fix ei_seat_unbind_capabilities
      ei: de-duplicate ei_seat_unbind_capability
      test: cast the varargs to the right data size
      meson: require the python modules that the scanner requires
      doc: fix two obsolete API comments
      doc: move the sentinel attribute to unconfuse doxygen
      test: fix a debug log typo
      Rename an internal struct to scroll_state
      Split the ei_pointer interface up into its components
      protocol: replace the capabilities enum with an interface list
      Purge the pseudo-code examples
      doc: point to the main branch, not the master branch
      ei: change the API to match the protocol interfaces closer
      eis: change the API to match the protocol interfaces closer
      doc: rename the mainpage sections to get @ref ei to work
      Add a few more doxygen comments
      doc: some minor doxygen updates
      doc: split the libei doxygen API into multiple submodules
      ei: tighten the event type checks
      eis: remove a misleading paragraph from the docs
      eis: split up the API docs into smaller categories
      eis: drop the vestiges of client restrictions
      tools/demo-server: only print now if we actually have events
      tools/demo-server: check if we have a touch before sending one
      tools: ei-demo-client needs to bind to the new button/scroll caps
      ei: fix capability checks for sending events
      tools: ei-demo-client should bind all caps at once
      tools: make the button/scroll caps available on demo-server seats
      meson.build: install our headers into a versioned subfolder
      doc/protocol: fix the link to the C libraries section
      doc/protocol: fix link to the liboeffis API docs
      meson.build: add soname versions to the generated libraries
      doc/api: add liboeffis to the various sections
      doc/api: add the unicode icons for a splash of color
      doc/api: add some more high-level overview to the libei page
      test: fix the oeffis pytest
      meson.build: list if oeffis is built in the summary
      meson.build: change the test builds to be a feature
      tools: bind to the new capabilities in ei-debug-events
      test: add the new caps to the bind-all-caps test
      test: switch to use ei_seat_bind_capabilities()
      ei: drop ei_seat_bind_capability() and the unbind equivalent
      ei: drop unused ei_insert_device_removed_event()
      proto: document the callback-data for pingpong/callback better
      protocol: widen the callback_data arg for ping/sync to 64bit
      proto: fix a typo
      README: fix the paragraph talking about the protocol
      libei 1.0.0rc1

-------------- 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/20230517/0f3cd0cf/attachment.sig>

More information about the wayland-devel mailing list