mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2026-01-01 01:10:11 +01:00
In the protocol this is a simple rename but in the implementation we can now separate the protocol object out from the ei/ei-client context itself by having the ei_connection objects.
315 lines
9.3 KiB
XML
315 lines
9.3 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" 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
|
|
- 'uint': 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. Full (le) encoding:
|
|
[0x06, 0x00, 0x00, 0x00, 'h', 'e', 'l', 'l', 'o', '\0', '\0\, '\0']
|
|
|
|
-->
|
|
|
|
<interface name="ei_connection" version="1">
|
|
<description summary="core global object">
|
|
The core global object. This is a special singleton object. It
|
|
is used for internal ei protocol features.
|
|
</description>
|
|
|
|
<request name="get_version">
|
|
</request>
|
|
|
|
<request name="connect">
|
|
<arg name="version" type="uint"/>
|
|
<arg name="name" type="string"/>
|
|
<arg name="is_sender" type="uint"/>
|
|
</request>
|
|
|
|
<request name="connect_done">
|
|
</request>
|
|
|
|
<request name="disconnect">
|
|
</request>
|
|
|
|
<request name="bind_seat">
|
|
<arg name="seat_id" type="uint"/>
|
|
<arg name="capabilities" type="uint"/>
|
|
</request>
|
|
|
|
<request name="close_device">
|
|
<arg name="device_id" type="uint"/>
|
|
</request>
|
|
|
|
<request name="pointer_relative">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</request>
|
|
|
|
<request name="pointer_absolute">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</request>
|
|
|
|
<request name="pointer_scroll">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</request>
|
|
|
|
<request name="pointer_scroll_discrete">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="x" type="int"/>
|
|
<arg name="y" type="int"/>
|
|
</request>
|
|
|
|
<request name="pointer_scroll_stop">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="x" type="uint"/>
|
|
<arg name="y" type="uint"/>
|
|
<arg name="is_cancel" type="uint"/>
|
|
</request>
|
|
|
|
<request name="pointer_button">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="button" type="uint"/>
|
|
<arg name="state" type="uint"/>
|
|
</request>
|
|
|
|
<request name="keyboard_key">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="key" type="uint"/>
|
|
<arg name="state" type="uint"/>
|
|
</request>
|
|
|
|
<request name="touch_down">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="touchid" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</request>
|
|
|
|
<request name="touch_motion">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="touchid" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</request>
|
|
|
|
<request name="touch_up">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="touchid" type="uint"/>
|
|
</request>
|
|
|
|
<request name="start_emulating">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="sequence" type="uint"/>
|
|
</request>
|
|
|
|
<request name="stop_emulating">
|
|
<arg name="device_id" type="uint"/>
|
|
</request>
|
|
|
|
<request name="frame">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="timestamp" type="uint"/>
|
|
<arg name="micros" type="uint"/>
|
|
</request>
|
|
|
|
<event name="version">
|
|
<arg name="version" type="uint"/>
|
|
</event>
|
|
|
|
<event name="connected">
|
|
</event>
|
|
|
|
<event name="disconnected">
|
|
</event>
|
|
|
|
<event name="seat_added">
|
|
<arg name="seat_id" type="uint"/>
|
|
<arg name="capabilities" type="uint"/>
|
|
<arg name="name" type="string"/>
|
|
</event>
|
|
|
|
<event name="seat_removed">
|
|
<arg name="seat_id" type="uint"/>
|
|
</event>
|
|
|
|
<event name="device_added">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="capabilities" type="uint"/>
|
|
<arg name="name" type="string"/>
|
|
<arg name="seat_id" type="uint"/>
|
|
<arg name="type" type="uint"/>
|
|
<arg name="width" type="uint"/>
|
|
<arg name="height" type="uint"/>
|
|
</event>
|
|
|
|
<event name="device_keymap">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="keymap_type" type="uint"/>
|
|
<arg name="keymap_size" type="uint"/>
|
|
<arg name="keymap" type="fd"/>
|
|
</event>
|
|
|
|
<event name="device_region">
|
|
<arg name="device_id" type="uint"/>
|
|
<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="device_done">
|
|
<arg name="device_id" type="uint"/>
|
|
</event>
|
|
|
|
<event name="device_removed">
|
|
<arg name="device_id" type="uint"/>
|
|
</event>
|
|
|
|
<event name="device_resumed">
|
|
<arg name="device_id" type="uint"/>
|
|
</event>
|
|
|
|
<event name="device_paused">
|
|
<arg name="device_id" type="uint"/>
|
|
</event>
|
|
|
|
<event name="pointer_relative">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</event>
|
|
|
|
<event name="pointer_absolute">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</event>
|
|
|
|
<event name="pointer_scroll">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</event>
|
|
|
|
<event name="pointer_scroll_discrete">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="x" type="int"/>
|
|
<arg name="y" type="int"/>
|
|
</event>
|
|
|
|
<event name="pointer_scroll_stop">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="x" type="uint"/>
|
|
<arg name="y" type="uint"/>
|
|
<arg name="is_cancel" type="uint"/>
|
|
</event>
|
|
|
|
<event name="pointer_button">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="button" type="uint"/>
|
|
<arg name="state" type="uint"/>
|
|
</event>
|
|
|
|
<event name="keyboard_key">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="key" type="uint"/>
|
|
<arg name="state" type="uint"/>
|
|
</event>
|
|
|
|
<event name="keyboard_modifiers">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="depressed" type="uint"/>
|
|
<arg name="locked" type="uint"/>
|
|
<arg name="latched" type="uint"/>
|
|
<arg name="group" type="uint"/>
|
|
</event>
|
|
|
|
<event name="touch_down">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="touchid" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</event>
|
|
|
|
<event name="touch_motion">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="touchid" type="uint"/>
|
|
<arg name="x" type="float"/>
|
|
<arg name="y" type="float"/>
|
|
</event>
|
|
|
|
<event name="touch_up">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="touchid" type="uint"/>
|
|
</event>
|
|
|
|
<event name="start_emulating">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="sequence" type="uint"/>
|
|
</event>
|
|
|
|
<event name="stop_emulating">
|
|
<arg name="device_id" type="uint"/>
|
|
</event>
|
|
|
|
<event name="frame">
|
|
<arg name="device_id" type="uint"/>
|
|
<arg name="timestamp" type="uint"/>
|
|
<arg name="micros" type="uint"/>
|
|
</event>
|
|
</interface>
|
|
</protocol>
|
|
|