mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2026-02-04 04:50:28 +01:00
proto: drop the seat caps and cross-reference device caps instead
This commit is contained in:
parent
1db37c33d5
commit
0897722493
3 changed files with 17 additions and 37 deletions
|
|
@ -528,20 +528,6 @@
|
|||
</description>
|
||||
</request>
|
||||
|
||||
<enum name="capabilities" since="1" bitfield="true">
|
||||
<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.
|
||||
|
||||
These capabilities are binary compatible with ei_device.capabilities.
|
||||
</description>
|
||||
<entry name="pointer" value="2" summary="the relative pointer capability"/>
|
||||
<entry name="pointer_absolute" value="4" summary="the absolute pointer capability"/>
|
||||
<entry name="keyboard" value="8" summary="the keyboard capability"/>
|
||||
<entry name="touchscreen" value="16" summary="the touchscreen capability"/>
|
||||
</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
|
||||
|
|
@ -555,7 +541,7 @@
|
|||
is interested in. If capabilities are dropped, the EIS implementation may
|
||||
ei_device.remove devices that have these capabilities.
|
||||
</description>
|
||||
<arg name="capabilities" type="uint32" enum="capabilities"/>
|
||||
<arg name="capabilities" type="uint32" enum="ei_device.capabilities"/>
|
||||
</request>
|
||||
|
||||
<!-- ei_seat events version 1 -->
|
||||
|
|
@ -588,11 +574,9 @@
|
|||
capabilies and an EIS implementation may then create device based on the bound
|
||||
capabilities.
|
||||
|
||||
These capabilities are binary compatible with ei_device.capabilities.
|
||||
|
||||
It is a protocol violation to send this event after the ei_seat.done event.
|
||||
</description>
|
||||
<arg name="capabilities" type="uint32" enum="capabilities" summary="the seat capabilities"/>
|
||||
<arg name="capabilities" type="uint32" enum="ei_device.capabilities" summary="the seat capabilities"/>
|
||||
</event>
|
||||
|
||||
<event name="done" since="1">
|
||||
|
|
|
|||
|
|
@ -30,11 +30,6 @@
|
|||
#include "libeis-private.h"
|
||||
#include "eis-proto.h"
|
||||
|
||||
static_assert((1 << EIS_DEVICE_CAP_POINTER) == EIS_SEAT_CAPABILITIES_POINTER, "ABI mismatch");
|
||||
static_assert((1 << EIS_DEVICE_CAP_POINTER_ABSOLUTE) == EIS_SEAT_CAPABILITIES_POINTER_ABSOLUTE, "ABI mismatch");
|
||||
static_assert((1 << EIS_DEVICE_CAP_KEYBOARD) == EIS_SEAT_CAPABILITIES_KEYBOARD, "ABI mismatch");
|
||||
static_assert((1 << EIS_DEVICE_CAP_TOUCH) == EIS_SEAT_CAPABILITIES_TOUCHSCREEN, "ABI mismatch");
|
||||
|
||||
static void
|
||||
eis_seat_destroy(struct eis_seat *seat)
|
||||
{
|
||||
|
|
@ -96,14 +91,14 @@ client_msg_bind(struct eis_seat *seat, uint32_t caps)
|
|||
{
|
||||
uint32_t allowed_caps = 0;
|
||||
|
||||
if (seat->proto_object.version >= EIS_SEAT_CAPABILITIES_POINTER_SINCE_VERSION)
|
||||
allowed_caps |= EIS_SEAT_CAPABILITIES_POINTER;
|
||||
if (seat->proto_object.version >= EIS_SEAT_CAPABILITIES_POINTER_ABSOLUTE_SINCE_VERSION)
|
||||
allowed_caps |= EIS_SEAT_CAPABILITIES_POINTER_ABSOLUTE;
|
||||
if (seat->proto_object.version >= EIS_SEAT_CAPABILITIES_KEYBOARD_SINCE_VERSION)
|
||||
allowed_caps |= EIS_SEAT_CAPABILITIES_KEYBOARD;
|
||||
if (seat->proto_object.version >= EIS_SEAT_CAPABILITIES_TOUCHSCREEN_SINCE_VERSION)
|
||||
allowed_caps |= EIS_SEAT_CAPABILITIES_TOUCHSCREEN;
|
||||
if (seat->proto_object.version >= EIS_DEVICE_CAPABILITIES_POINTER_SINCE_VERSION)
|
||||
allowed_caps |= EIS_DEVICE_CAPABILITIES_POINTER;
|
||||
if (seat->proto_object.version >= EIS_DEVICE_CAPABILITIES_POINTER_ABSOLUTE_SINCE_VERSION)
|
||||
allowed_caps |= EIS_DEVICE_CAPABILITIES_POINTER_ABSOLUTE;
|
||||
if (seat->proto_object.version >= EIS_DEVICE_CAPABILITIES_KEYBOARD_SINCE_VERSION)
|
||||
allowed_caps |= EIS_DEVICE_CAPABILITIES_KEYBOARD;
|
||||
if (seat->proto_object.version >= EIS_DEVICE_CAPABILITIES_TOUCHSCREEN_SINCE_VERSION)
|
||||
allowed_caps |= EIS_DEVICE_CAPABILITIES_TOUCHSCREEN;
|
||||
|
||||
if (caps & ~allowed_caps)
|
||||
return brei_result_new(EIS_CONNECTION_DISCONNECT_REASON_VALUE,
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ try:
|
|||
EiCallback,
|
||||
EiConnection,
|
||||
EiConnectionSetup,
|
||||
EiDevice,
|
||||
EiSeat,
|
||||
)
|
||||
except ImportError:
|
||||
|
|
@ -528,10 +529,10 @@ class TestEiProtocol:
|
|||
caps = call.args["capabilities"]
|
||||
assert (
|
||||
caps
|
||||
== EiSeat.EiCapabilities.POINTER
|
||||
| EiSeat.EiCapabilities.POINTER_ABSOLUTE
|
||||
| EiSeat.EiCapabilities.KEYBOARD
|
||||
| EiSeat.EiCapabilities.TOUCHSCREEN
|
||||
== EiDevice.EiCapabilities.POINTER
|
||||
| EiDevice.EiCapabilities.POINTER_ABSOLUTE
|
||||
| EiDevice.EiCapabilities.KEYBOARD
|
||||
| EiDevice.EiCapabilities.TOUCHSCREEN
|
||||
)
|
||||
break
|
||||
else:
|
||||
|
|
@ -643,7 +644,7 @@ class TestEiProtocol:
|
|||
|
||||
seat.connect("Destroyed", destroyed_cb)
|
||||
if bind_first:
|
||||
ei.send(seat.Bind(EiSeat.EiCapabilities.POINTER))
|
||||
ei.send(seat.Bind(EiDevice.EiCapabilities.POINTER))
|
||||
ei.send(seat.Release())
|
||||
|
||||
ei.dispatch()
|
||||
|
|
@ -771,7 +772,7 @@ class TestEiProtocol:
|
|||
seat = new_objects["seat"]
|
||||
assert seat is not None
|
||||
seat.connect("Device", on_device)
|
||||
ei.send(seat.Bind(EiSeat.EiCapabilities.POINTER))
|
||||
ei.send(seat.Bind(EiDevice.EiCapabilities.POINTER))
|
||||
status.seats = True
|
||||
|
||||
def on_disconnected(connection, last_serial, reason, explanation):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue