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"> <description summary="Device start emulating request">
Notify the EIS implementation that the given device is about to start 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 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 time-based boundary. The primary use-case for this is UI updates to indicate
the EIS implementation side and/or UI updates to indicate that a device is that a device is sending events now and for out-of-band information to sync
sending events now and for out-of-band information to sync with a given event with a given event sequence.
sequence.
There is no actual requirement that events start immediately once emulation 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 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 It is a protocol violation to request ei_device.start_emulating after
ei_device.start_emulating without an intermediate stop_emulating. 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 It is a protocol violation to send this request for a client
of an ei_handshake.context_type other than sender. of an ei_handshake.context_type other than sender.
@ -648,6 +649,23 @@
<arg name="timestamp" type="uint64" summary="timestamp in microseconds"/> <arg name="timestamp" type="uint64" summary="timestamp in microseconds"/>
</request> </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 --> <!-- ei_device events version 1 -->
<event name="destroyed" type="destructor" since="1"> <event name="destroyed" type="destructor" since="1">
@ -1612,7 +1630,7 @@
required to negotiate tool capabilities. Negotiation is performed by the required to negotiate tool capabilities. Negotiation is performed by the
server first sending ei_stylus.tool_capabilities prior to ei_device.done server first sending ei_stylus.tool_capabilities prior to ei_device.done
and then the client responding with ei_stylus.bind_tool_capabilities 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 This interface may be used on both ei_device.device_type.virtual and
ei_device.device_type.physical devices. As an interface with absolute ei_device.device_type.physical devices. As an interface with absolute