[ANNOUNCE] libei 1.0.0
Peter Hutterer
peter.hutterer at who-t.net
Wed Jun 7 23:56:55 UTC 2023
libei 1.0.0 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/1.0.0
# Changes:
Note that there is one minor protocol change (`ei_connection.sync`) and
one ABI (not API) change in libeis since the RC2 despite previous
statements that the protocol and API are stable. In both cases it was
better to do it now while every user of libei(s) is still in draft than
having to special-case those instances for the next 10 years.
An rebuild will take care of of the ABI change, making sure libei and
libeis are both on 1.0.0 will take care of the protocol change.
Notable changes since RC2:
- meson requirements dropped back to 0.56 to allow for building on older distros
- Protocol
- ei_connection.sync now takes a version argument to allow for
future updates of the ei_callback interface. This is a protocol
change.
- the ei-scanner now exposes interface_arg + interface_arg_for
and version_arg + version_arg_for to allow for better handling
of arguments that refer to interfaces or versions, respectively
- Library:
- The enum eis_event_type was synced with libei so identical events
(e.g. EI_EVENT_FRAME and EIS_EVENT_FRAME) have the same enum
value in both libraries. This fixes commit e6954b76d. This is an ABI
break, a rebuild will take care of it.
- sending an ei_device_scroll_discrete event with value 1 now logs a
bug. This typically indicates a bug in the caller and the value
should be a fraction or multiple of 120 instead.
- a few missing functions are now public: eis_region_contains(),
eis_region_get_physical_scale(), eis_device_get_context(),
eis_seat_get_context(), eis_device_get_width() and
eis_device_get_height()
- libeis *for now* sends all negotiated interface versions back to the
client during the initial handshake. This isn't required by the
protocol but it ensures those parts of any new client are working
correctly.
Please see the documentation here: https://libinput.pages.freedesktop.org/libei/
The git shortlog is below
Ian Douglas Scott (2):
ei-scanner: Fix `--jinja-extra-data-file`, and make `mypy` check pass
ei-scanner: Expose `interface_arg`, and also provide `interface_arg_for`
Peter Hutterer (39):
meson.build: drop requirements back to 0.56
CI: add a build test for our minimum meson version
scanner: rework the main() function into something easier to test
scanner: add tests for the extra data arguments
ei-scanner: expose `version_arg` and `version_arg_for`
proto: add a version argument to ei_connection.sync
libei: check incoming objects' version for correctness
libeis: check incoming objects' version for correctness
log: remove trailing linebreaks from log messages
Log a bug if a client tries to send a discrete value 1
CI: add a comment to the meson build helper
Remove unimplemented ei_device_get_keymap()
ei: ei_device_get_width/height need to be public APIs
doc: change the doxygen oeffis group to liboeffis
tools: make the demo client send the correct discrete events
eis: expose eis_device_get_context() and eis_seat_get_context()
test: use the callback's version instead of hardcoding it a second time
Correct a meaningless comment
eis: sync event codes with libei
CI: use meson setup in the abi check job
CI: fix the ABI check job, it was using the wrong HEAD
eis: add eis_region_get_physical_scale
eis: expose eis_region_contains
ei: more docs that data is in pixels or mm
test: drop ifdef'd out test
test: add tests for the eis region getters
CI: remove a copy/pasted MESON_ARGS from the abicheck job
ci: add a check that our event values cannot diverge
test: check that the width/height are set for physical devices
ei: remove unused ei_pingpong_new()
tests: add tests for button events
ei: removed unused ei_callback_new_for_id
eis: send all our interface versions to the client
test: add a unit test for ei_region_convert_point
ei: fix a whitespace error
test: don't over-ref the button/scroll devices
test: add test for correct ei_device_close behavior
test: ensure all returned interface versions are 1
libei 1.0.0
-------------- 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/20230608/cc316f67/attachment.sig>
More information about the wayland-devel
mailing list