mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2026-01-01 00:00:09 +01:00
724 lines
27 KiB
XML
724 lines
27 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<protocol name="ei">
|
|
|
|
<copyright>
|
|
Copyright © 2008-2011 Kristian Høgsberg
|
|
Copyright © 2010-2011 Intel Corporation
|
|
Copyright © 2012-2013 Collabora, Ltd.
|
|
Copyright © 2023 Red Hat, Inc.
|
|
|
|
Permission is hereby granted, free of charge, to any person
|
|
obtaining a copy of this software and associated documentation files
|
|
(the "Software"), to deal in the Software without restriction,
|
|
including without limitation the rights to use, copy, modify, merge,
|
|
publish, distribute, sublicense, and/or sell copies of the Software,
|
|
and to permit persons to whom the Software is furnished to do so,
|
|
subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice (including the
|
|
next paragraph) shall be included in all copies or substantial
|
|
portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
|
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
SOFTWARE.
|
|
</copyright>
|
|
|
|
<!--
|
|
|
|
Protocol wire format: [length, sender-id, opcode, ...]
|
|
Where:
|
|
- length, sender-id and opcode are 32-bit integers in the
|
|
EIS implementation's native byte order.
|
|
- length is the length of the message in bytes, including the 12 header bytes
|
|
- sender-id is the id of the object sending the request/event. The sender-id
|
|
0 is reserved for the special "ei_connection_setup" object.
|
|
- opcode is the event or requeset-specific opcode, starting at 0
|
|
requests and events have overlapping opcode ranges, i.e. the first request
|
|
and the first event both have opcode 0.
|
|
- arguments is a variable number of arguments specific to the message.
|
|
|
|
Types:
|
|
- 'uint': a 32-bit unsigned integer
|
|
- 'int': a 32-bit signed integer
|
|
- 'float': a 32-bit IEEE-754 float
|
|
- 'fd': a file descriptor. Zero bytes in the message itself, transmitted
|
|
in the overhead
|
|
- 'string': a length-prefix zero-terminated string. Encoded as
|
|
one 32-bit unsigned integer for the length followed by the string.
|
|
The string is padded to the nearest 4-byte units, for example the string
|
|
"hello" is of length 6 but is zero-padded to 8 bytes and with the 4-byte
|
|
length field thus takes 12 bytes in total. Full (le) encoding:
|
|
[0x06, 0x00, 0x00, 0x00, 'h', 'e', 'l', 'l', 'o', '\0', '\0\, '\0']
|
|
- 'new_id': an object id allocated by the caller. Client-allocated IDs begin
|
|
at 1 and must be less than 0xff000000.
|
|
IDs allocated by the EIS implementation start at and must not be less
|
|
than 0xff000000.
|
|
- 'object_id': a previously allocated object id
|
|
|
|
The initial connection is a two-step process:
|
|
An ei_connection_setup object with the special ID 0 is guaranteed to
|
|
exists. The client must send the appropriate requests to set up
|
|
its connection, followed by the .done request. The server replies
|
|
by creating the ei_connection object with the client-requested version
|
|
(or any lower version) that is the connection for the remainder of this
|
|
client.
|
|
|
|
-->
|
|
|
|
<interface name="ei_connection_setup" version="1">
|
|
<description summary="connection setup object">
|
|
This is a special interface to setup the client as seen by the EIS
|
|
implementation. The object for this interface has the fixed object
|
|
id 0 and only exists until the connection has been set up, see the
|
|
ei_connection_setup.connection event.
|
|
|
|
Once set up, the connection setup hands over to the main
|
|
ei_connection object which is the top-level object for all future
|
|
requests and events.
|
|
</description>
|
|
|
|
<request name="done" since="1">
|
|
<description summary="done request">
|
|
Notify the EIS implementation that configuration is complete.
|
|
|
|
The ei_conection_setup object will be destroyed by the
|
|
EIS implementation after this request is processed and
|
|
the client must not attempt to use it after that point.
|
|
</description>
|
|
</request>
|
|
|
|
<enum name="context_type" since="1">
|
|
<description summary="context type">
|
|
This enum denotes context types for the libei context.
|
|
|
|
A context type of receiver is a libei context receiving events
|
|
from the EIS implementation. A context type of sender is a libei context
|
|
sending events to the EIS implementation.
|
|
</description>
|
|
<entry name="receiver" value="0"/>
|
|
<entry name="sender" value="1"/>
|
|
</enum>
|
|
|
|
<request name="type" since="1">
|
|
<description summary="type request">
|
|
Notify the EIS implementation of the type of this context.
|
|
|
|
This request is optional, the default client type is context_type.receiver.
|
|
This request must not be sent more than once.
|
|
</description>
|
|
<arg name="context_type" type="uint" enum="context_type" summary="the client context type"/>
|
|
</request>
|
|
|
|
<request name="name" since="1">
|
|
<description summary="type request">
|
|
Notify the EIS implementation of the client name. The name is a
|
|
human-presentable UTF-8 string. There is no requirement
|
|
for the EIS implementation to use this name.
|
|
|
|
This request is optional, the default client name is implementation-defined.
|
|
This request must not be sent more than once.
|
|
</description>
|
|
<arg name="name" type="string" summary="the client name"/>
|
|
</request>
|
|
|
|
<request name="interface" since="1">
|
|
<description summary="interface support notification">
|
|
Notify the EIS implementation that the client supports the
|
|
given named interface with the given maximum version number.
|
|
|
|
In the future, objects created by the EIS implementation will
|
|
use the respective interface version (or any lesser version).
|
|
|
|
This request must be sent for the ei_connection interface, failing to do
|
|
so will result in the EIS implementation disconnecting the client
|
|
on ei_connection_setup.done.
|
|
|
|
If the ei_connection_setup version is given, the interface of this
|
|
object is upgraded to the given version. Otherwise, the
|
|
ei_connection_setup version defaults to 1.
|
|
|
|
A client must not provide a ei_connection_setup version higher
|
|
than ei_connection_setup.version.
|
|
|
|
This request must not be sent more than once per interface.
|
|
</description>
|
|
<arg name="name" type="string" summary="the interface name"/>
|
|
<arg name="version" type="uint" summary="the interface version"/>
|
|
</request>
|
|
|
|
<event name="version" since="1">
|
|
<description summary="the connection setup version">
|
|
The highest supported version of the ei_connection_setup
|
|
interface as supported by the EIS implementation. Any requests
|
|
sent by the client must be provided in this version
|
|
or any lower version.
|
|
|
|
This event is sent immediately after connection. A client
|
|
should not issue any requests until processing this version.
|
|
|
|
Note that the EIS implementation assumes that the supported
|
|
client version of this interface is 1 unless and until the client
|
|
announces a higher version of this interface in the
|
|
ei_connection_setup.interface request.
|
|
</description>
|
|
<arg name="version" type="uint"
|
|
summary="the highest version supported by the EIS implementation"/>
|
|
</event>
|
|
|
|
<event name="connection" since="1">
|
|
<description summary="the core connection object">
|
|
Provides the client with the connection object that is the top-level
|
|
object for all future requests and events.
|
|
|
|
This event is sent at some unspecified time after the client sends the
|
|
ei_connection_setup.done request to the EIS implementation.
|
|
|
|
The ei_connection_setup object will be destroyed by the
|
|
EIS implementation immediately after this event has been sent, a
|
|
client must not attempt to use it after that point.
|
|
|
|
The version sent by the server is the version of the ei_connection
|
|
interface as announced by ei_connection_setup.interface, or any
|
|
lower version.
|
|
</description>
|
|
<arg name="connection" type="new_id" interface="ei_connection"
|
|
summary="the connection object" />
|
|
<arg name="version" type="uint" summary="the version of the connection object"/>
|
|
</event>
|
|
</interface>
|
|
|
|
<interface name="ei_connection" version="1">
|
|
<description summary="core global object">
|
|
The core connection object. This is the top-level object for any communication
|
|
with the EIS implementation.
|
|
</description>
|
|
|
|
<request name="sync" since="1">
|
|
<description summary="asynchronous roundtrip">
|
|
The sync request asks the EIS implementation to emit the 'done' event
|
|
on the returned ei_callback object. Since requests are
|
|
handled in-order and events are delivered in-order, this can
|
|
be used as a synchronization point to ensure all previous requests and the
|
|
resulting events have been handled.
|
|
|
|
The object returned by this request will be destroyed by the
|
|
EIS implementation after the callback is fired and as such the client must not
|
|
attempt to use it after that point.
|
|
|
|
<!-- FIXME: this needs to be something useful, but we don't have anything
|
|
useful to send yet -->
|
|
The callback_data passed in the callback is always zero.
|
|
</description>
|
|
<arg name="callback" type="new_id" interface="ei_callback"
|
|
summary="callback object for the sync request"/>
|
|
</request>
|
|
|
|
<request name="disconnect" since="1">
|
|
<description summary="disconnection request">
|
|
A request to the EIS implementation that this client should be disconnected.
|
|
This is a courtesy request to allow the EIS implementation to distinquish
|
|
between a client disconnecting on purpose and one disconnecting through the
|
|
socket becoming invalid.
|
|
</description>>
|
|
</request>
|
|
|
|
<enum name="disconnect_reason" since="1">
|
|
<description summary="disconnection reason">
|
|
A reason why a client was disconnected.
|
|
</description>
|
|
<entry name="disconnected" value="0" help="client was purposely disconnected"/>
|
|
<entry name="error" value="1" help="an error caused the disconnection"/>
|
|
</enum>
|
|
|
|
<event name="disconnected" since="1">
|
|
<description summary="disconnection event">
|
|
This event may be sent by the EIS implementation immediately before
|
|
the client is disconnected.
|
|
|
|
Where a client is disconnected by EIS on purpose, for example after
|
|
a user interaction, the reason is disconnect_reason.disconnected and
|
|
the explanation is NULL.
|
|
|
|
Where a client is disconnected due to some invalid request or other
|
|
protocol error, the reason is disconnect_reason.error and
|
|
explanation may contain a string explaining why. This string is
|
|
intended to help debugging only and is not guaranteed to stay constant.
|
|
|
|
There is no guarantee this event is sent - the connection may be closed
|
|
without a disconnection event.
|
|
</description>
|
|
<arg name="reason" type="uint" enum="disconnect_reason"/>
|
|
<arg name="explanation" type="string"/>
|
|
</event>
|
|
|
|
<event name="seat" since="1">
|
|
<description summary="Seat presence notification">
|
|
Notification that a new seat has been added.
|
|
|
|
The interface version is equal or less to the client-supported
|
|
version in ei_connection_setup.interface for the "ei_seat"
|
|
interface.
|
|
</description>
|
|
<arg name="seat" type="new_id" interface="ei_seat"/>
|
|
<arg name="version" type="uint" summary="the interface version"/>
|
|
</event>
|
|
</interface>
|
|
|
|
<interface name="ei_callback" version="1">
|
|
<description summary="callback object">
|
|
Clients can handle the 'done' event to get notified when
|
|
the related request is done.
|
|
</description>
|
|
|
|
<event name="done" type="destructor" since="1">
|
|
<description summary="done event">
|
|
Notify the client when the related request is done.
|
|
</description>
|
|
<arg name="callback_data" type="uint" summary="request-specific data for the callback"/>
|
|
</event>
|
|
</interface>
|
|
|
|
<interface name="ei_seat" version="1">
|
|
<description summary="seat object">
|
|
An ei_seat represents a set of input devices that logically belong together. In most
|
|
cases only one seat is present and all input devices on that seat share the same
|
|
pointer and keyboard focus.
|
|
|
|
A seat has potential capabilities, a client is expected to bind to those capabilities.
|
|
The EIS implementation then creates logical input devices based on the capabilities the
|
|
client is interested in.
|
|
|
|
Immediately after creation of the ei_seat object, the EIS implementation sends a burst
|
|
of events with information about this seat. This burst of events is terminated by the
|
|
ei_seat.done event.
|
|
</description>
|
|
|
|
<request name="release" since="1">
|
|
<description summary="Seat removal request">
|
|
Notification that the client is no longer interested in this seat.
|
|
The EIS implementation will release any resources related to this seat and
|
|
send the ei_seat.destroyed event once complete.
|
|
|
|
Note that releasing a seat does not guarantee another seat becomes available.
|
|
In other words, in most single-seat cases, releasing the seat means the
|
|
connection becomes effectively inert.
|
|
</description>
|
|
</request>
|
|
|
|
<enum name="capabilities" since="1" type="bitmask">
|
|
<description summary="Seat capabilities">
|
|
A set of capabilities possible available on this seat. A client may bind to these
|
|
capabilies and an EIS implementation may then create device based on the bound
|
|
capabilities.
|
|
</description>
|
|
<entry name="pointer" value="2"/>
|
|
<entry name="pointer_absolute" value="4"/>
|
|
<entry name="keyboard" value="8"/>
|
|
<entry name="touchscreen" value="16"/>
|
|
</enum>
|
|
|
|
<request name="bind" since="1">
|
|
<description summary="Seat binding">
|
|
Bind to the bitmask of capabilities given. The bitmask is zero or more of the
|
|
capabilities provided in the ei_seat.capabilities event. That event's capabilities
|
|
are used as a mask of capabilities that can be bound.
|
|
|
|
Binding capabilities that are not supported in the ei_seat's interface version
|
|
is a client bug and may result in disconnection.
|
|
|
|
A client may send this request multiple times to adjust the capabilities it
|
|
is interested in. If capabilities are dropped, the EIS implementation may
|
|
ei_device.remove devices that have these capabilities.
|
|
</description>
|
|
<arg name="capabilities" type="uint" enum="capabilities"/>
|
|
</request>
|
|
|
|
<event name="destroyed" since="1">
|
|
<description summary="Seat removal notification">
|
|
This seat has been removed and a client should release all
|
|
associated resources.
|
|
</description>
|
|
</event>
|
|
|
|
<event name="name" since="1">
|
|
<description summary="Seat name notification">
|
|
The name of this seat, if any. This event is optional and sent once immediately
|
|
after object creation.
|
|
</description>
|
|
<arg name="name" type="string" help="the seat name"/>
|
|
</event>
|
|
|
|
<event name="capabilities" since="1">
|
|
<description summary="Seat capability notification">
|
|
A bitmask of the capabilities of this seat.
|
|
</description>
|
|
<arg name="capabilities" type="uint" enum="capabilities" help="the seat capabilities"/>
|
|
</event>
|
|
|
|
<event name="done" since="1">
|
|
<description summary="Seat setup completion notification">
|
|
Notification that the initial burst of events is complete and
|
|
the client can set up this seat now.
|
|
</description>
|
|
</event>
|
|
|
|
<event name="device" since="1">
|
|
<description summary="Device presence notification">
|
|
Notification that a new device has been added.
|
|
|
|
The interface version is equal or less to the client-supported
|
|
version in ei_connection_setup.interface for the "ei_device"
|
|
interface.
|
|
</description>
|
|
<arg name="device" type="new_id" interface="ei_device"/>
|
|
<arg name="version" type="uint" summary="the interface version"/>
|
|
</event>
|
|
</interface>
|
|
|
|
<interface name="ei_device" version="1">
|
|
<request name="release" since="1">
|
|
<description summary="Device removal request">
|
|
Notification that the client is no longer interested in this device.
|
|
The EIS implementation will release any resources related to this device and
|
|
send the ei_device.destroyed event once complete.
|
|
</description>
|
|
</request>
|
|
|
|
<request name="start_emulating" since="1">
|
|
<arg name="sequence" type="uint"/>
|
|
</request>
|
|
|
|
<request name="stop_emulating" since="1">
|
|
</request>
|
|
|
|
<request name="frame" since="1">
|
|
<arg name="timestamp" type="uint"/>
|
|
<arg name="micros" type="uint"/>
|
|
</request>
|
|
|
|
<event name="destroyed" since="1">
|
|
<description summary="Device removal notification">
|
|
This device has been removed and a client should release all
|
|
associated resources.
|
|
</description>
|
|
</event>
|
|
|
|
<event name="name" since="1">
|
|
<description summary="device name notification">
|
|
The name of this device, if any. This event is optional and sent once immediately
|
|
after object creation.
|
|
</description>
|
|
<arg name="name" type="string" help="the device name"/>
|
|
</event>
|
|
|
|
<enum name="capabilities" since="1" type="bitmask">
|
|
<entry name="pointer" value="2"/>
|
|
<entry name="pointer_absolute" value="4"/>
|
|
<entry name="keyboard" value="8"/>
|
|
<entry name="touchscreen" value="16"/>
|
|
</enum>
|
|
|
|
<event name="capabilities" since="1">
|
|
<description summary="device capability notification">
|
|
A bitmask of the capabilties of this device.
|
|
</description>
|
|
<arg name="capabilities" type="uint" enum="capabilities" help="the device name"/>
|
|
</event>
|
|
|
|
<enum name="device_type" since="1">
|
|
<entry name="virtual" value="1"/>
|
|
<entry name="physical" value="2"/>
|
|
</enum>
|
|
|
|
<event name="type" since="1">
|
|
<description summary="device type notification">
|
|
The device type, one of virtual or physical.
|
|
</description>
|
|
<arg name="type" type="uint" enum="device_type" help="the device type"/>
|
|
</event>
|
|
|
|
<event name="dimensions" since="1">
|
|
<description summary="device dimensions notification">
|
|
The device dimensions in mm.
|
|
</description>
|
|
<arg name="width" type="uint" help="the device physical width"/>
|
|
<arg name="height" type="uint" help="the device physical height"/>
|
|
</event>
|
|
|
|
<event name="region" since="1">
|
|
<arg name="offset_x" type="uint"/>
|
|
<arg name="offset_y" type="uint"/>
|
|
<arg name="width" type="uint"/>
|
|
<arg name="hight" type="uint"/>
|
|
<arg name="scale" type="float"/>
|
|
</event>
|
|
|
|
<event name="pointer" since="1">
|
|
<arg name="pointer" type="new_id" interface="ei_pointer"/>
|
|
<arg name="version" type="uint" summary="the interface version"/>
|
|
</event>
|
|
|
|
<event name="keyboard" since="1">
|
|
<arg name="keyboard" type="new_id" interface="ei_keyboard"/>
|
|
<arg name="version" type="uint" summary="the interface version"/>
|
|
</event>
|
|
|
|
<event name="touchscreen" since="1">
|
|
<arg name="touchscreen" type="new_id" interface="ei_touchscreen"/>
|
|
<arg name="version" type="uint" summary="the interface version"/>
|
|
</event>
|
|
|
|
<event name="done" since="1">
|
|
<description summary="device setup completion notification">
|
|
Notification that the initial burst of events is complete and
|
|
the client can set up this device now.
|
|
</description>
|
|
</event>
|
|
|
|
<event name="resumed" since="1">
|
|
</event>
|
|
|
|
<event name="paused" since="1">
|
|
</event>
|
|
|
|
<event name="start_emulating" since="1">
|
|
<arg name="sequence" type="uint"/>
|
|
</event>
|
|
|
|
<event name="stop_emulating" since="1">
|
|
</event>
|
|
|
|
<event name="frame" since="1">
|
|
<arg name="timestamp" type="uint"/>
|
|
<arg name="micros" type="uint"/>
|
|
</event>
|
|
</interface>
|
|
|
|
<interface name="ei_pointer" version="1">
|
|
<description summary="pointer object">
|
|
</description>
|
|
|
|
<request name="release" since="1">
|
|
<description summary="Pointer removal request">
|
|
Notification that the client is no longer interested in this pointer.
|
|
The EIS implementation will release any resources related to this pointer and
|
|
send the ei_pointer.destroyed event once complete.
|
|
</description>
|
|
</request>
|
|
|
|
<request name="motion_relative" since="1">
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</request>
|
|
|
|
<request name="motion_absolute" since="1">
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</request>
|
|
|
|
<request name="scroll" since="1">
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</request>
|
|
|
|
<request name="scroll_discrete" since="1">
|
|
<arg name="x" type="int"/>
|
|
<arg name="y" type="int"/>
|
|
</request>
|
|
|
|
<request name="scroll_stop" since="1">
|
|
<arg name="x" type="uint"/>
|
|
<arg name="y" type="uint"/>
|
|
<arg name="is_cancel" type="uint"/>
|
|
</request>
|
|
|
|
<enum name="button_state" since="1">
|
|
<entry name="released" value="0"/>
|
|
<entry name="press" value="1"/>
|
|
</enum>
|
|
|
|
<request name="button" since="1">
|
|
<arg name="button" type="uint"/>
|
|
<arg name="state" type="uint" enum="button_state"/>
|
|
</request>
|
|
|
|
<event name="destroyed" since="1">
|
|
<description summary="Seat removal notification">
|
|
This pointer has been removed and a client should release all
|
|
associated resources.
|
|
</description>
|
|
</event>
|
|
|
|
<event name="motion_relative" since="1">
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</event>
|
|
|
|
<event name="motion_absolute" since="1">
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</event>
|
|
|
|
<event name="scroll" since="1">
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</event>
|
|
|
|
<event name="scroll_discrete" since="1">
|
|
<arg name="x" type="int"/>
|
|
<arg name="y" type="int"/>
|
|
</event>
|
|
|
|
<event name="scroll_stop" since="1">
|
|
<arg name="x" type="uint"/>
|
|
<arg name="y" type="uint"/>
|
|
<arg name="is_cancel" type="uint"/>
|
|
</event>
|
|
|
|
<event name="button" since="1">
|
|
<arg name="button" type="uint"/>
|
|
<arg name="state" type="uint" enum="button_state"/>
|
|
</event>
|
|
|
|
</interface>
|
|
|
|
<interface name="ei_keyboard" version="1">
|
|
<description summary="keyboard object">
|
|
</description>
|
|
|
|
<request name="release" since="1">
|
|
<description summary="keyboard removal request">
|
|
Notification that the client is no longer interested in this keyboard.
|
|
The EIS implementation will release any resources related to this keyboard and
|
|
send the ei_keyboard.destroyed event once complete.
|
|
</description>
|
|
</request>
|
|
|
|
<enum name="keymap_type" since="1">
|
|
<entry name="xkb" value="1" help="an XKB keymap" />
|
|
</enum>
|
|
|
|
<event name="keymap" since="1">
|
|
<arg name="type" type="uint" enum="keymap_type" help="the keymap type"/>
|
|
<arg name="size" type="uint" help="the keymap size in bytes"/>
|
|
<arg name="keymap" type="fd" help="file descriptor to the keymap"/>
|
|
</event>
|
|
|
|
<enum name="key_state" since="1">
|
|
<entry name="released" value="0"/>
|
|
<entry name="press" value="1"/>
|
|
</enum>
|
|
|
|
<request name="key" since="1">
|
|
<arg name="key" type="uint"/>
|
|
<arg name="state" type="uint" enum="key_state"/>
|
|
</request>
|
|
|
|
<event name="destroyed" since="1">
|
|
<description summary="Seat removal notification">
|
|
This keyboard has been removed and a client should release all
|
|
associated resources.
|
|
</description>
|
|
</event>
|
|
|
|
<event name="key" since="1">
|
|
<arg name="key" type="uint"/>
|
|
<arg name="state" type="uint" enum="key_state"/>
|
|
</event>
|
|
|
|
<event name="modifiers" since="1">
|
|
<arg name="depressed" type="uint"/>
|
|
<arg name="locked" type="uint"/>
|
|
<arg name="latched" type="uint"/>
|
|
<arg name="group" type="uint"/>
|
|
</event>
|
|
</interface>
|
|
|
|
<interface name="ei_touchscreen" version="1">
|
|
<description summary="touchscreen object">
|
|
</description>
|
|
|
|
<request name="release" since="1">
|
|
<description summary="touch removal request">
|
|
Notification that the client is no longer interested in this touch.
|
|
The EIS implementation will release any resources related to this touch and
|
|
send the ei_touch.destroyed event once complete.
|
|
</description>
|
|
</request>
|
|
|
|
<request name="down" since="1">
|
|
<description summary="touch down request">
|
|
Notifies the EIS implementation about a new touch logically down at the
|
|
given coordinates. The touchid is a unique id for this touch. Touchids
|
|
may be re-used after ei_touchscreen.up.
|
|
</description>
|
|
<arg name="touchid" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</request>
|
|
|
|
<request name="motion" since="1">
|
|
<description summary="touch motion request">
|
|
Notifies the EIS implementation about an existing touch changing position to
|
|
the given coordinates. The touchid is the unique id for this touch previously
|
|
sent with ei_touchscreen.down.
|
|
</description>
|
|
<arg name="touchid" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</request>
|
|
|
|
<request name="up" since="1">
|
|
<description summary="touch up request">
|
|
Notifies the EIS implementation about an existing touch being logically
|
|
up. The touchid is the unique id for this touch previously
|
|
sent with ei_touchscreen.down.
|
|
|
|
The touchid may be re-used after this request.
|
|
</description>
|
|
<arg name="touchid" type="uint"/>
|
|
</request>
|
|
|
|
<event name="destroyed" since="1">
|
|
<description summary="Seat removal notification">
|
|
This touch has been removed and a client should release all
|
|
associated resources.
|
|
</description>
|
|
</event>
|
|
|
|
<event name="down" since="1">
|
|
<description summary="touch down request">
|
|
See the ei_touchscreen.down request for details. This event is
|
|
for ei receiver contexts.
|
|
</description>
|
|
<arg name="touchid" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</event>
|
|
|
|
<event name="motion" since="1">
|
|
<description summary="touch motion request">
|
|
See the ei_touchscreen.motion request for details. This event is
|
|
for ei receiver contexts.
|
|
</description>
|
|
<arg name="touchid" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</event>
|
|
|
|
<event name="up" since="1">
|
|
<description summary="touch motion request">
|
|
See the ei_touchscreen.up request for details. This event is
|
|
for ei receiver contexts.
|
|
</description>
|
|
<arg name="touchid" type="uint"/>
|
|
</event>
|
|
</interface>
|
|
</protocol>
|
|
|