proto: Define new ei_device.ready event

This commit is contained in:
Jason Gerecke 2025-07-02 15:47:53 -07:00
parent a676335c3f
commit 4cbae7f97d

View file

@ -587,10 +587,9 @@
<description summary="Device start emulating request">
Notify the EIS implementation that the given device is about to start
sending events. This should be seen more as a transactional boundary than a
time-based boundary. The primary use-cases for this are to allow for setup on
the EIS implementation side and/or UI updates to indicate that a device is
sending events now and for out-of-band information to sync with a given event
sequence.
time-based boundary. The primary use-case for this is UI updates to indicate
that a device is sending events now and for out-of-band information to sync
with a given event sequence.
There is no actual requirement that events start immediately once emulation
starts and there is no requirement that a client calls ei_device.stop_emulating
@ -607,6 +606,8 @@
It is a protocol violation to request ei_device.start_emulating after
ei_device.start_emulating without an intermediate stop_emulating.
It is a protocol violation to request ei_device.start_emulating without
having previously sent ei_device.ready.
It is a protocol violation to send this request for a client
of an ei_handshake.context_type other than sender.
@ -648,6 +649,23 @@
<arg name="timestamp" type="uint64" summary="timestamp in microseconds"/>
</request>
<!-- ei_device client requests version 3 -->
<request name="ready" since="3" context_type="sender">
<description summary="Device ready request">
Notification that the client has completed setup of this device.
This request denotes the end of device setup. It serves a similar role
as ei_device.done, except from the client's point of view. All required
interface-specific setup requests (if any) must be sent prior to this
request.
A client may not send ei_device.start_emulating until after this request
has been sent.
</description>
<arg name="last_serial" type="uint32" summary="the last serial sent by the EIS implementation"/>
</request>
<!-- ei_device events version 1 -->
<event name="destroyed" type="destructor" since="1">
@ -1612,7 +1630,7 @@
required to negotiate tool capabilities. Negotiation is performed by the
server first sending ei_stylus.tool_capabilities prior to ei_device.done
and then the client responding with ei_stylus.bind_tool_capabilities
prior to starting emulation for the first time.
prior to ei_device.ready.
This interface may be used on both ei_device.device_type.virtual and
ei_device.device_type.physical devices. As an interface with absolute