<?xml version="1.0" encoding="UTF-8"?>
<protocol name="agl_shell">
<copyright>
- Copyright © 2019 Collabora, Ltd.
+ Copyright © 2019, 2022 Collabora, Ltd.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
</copyright>
- <interface name="agl_shell" version="1">
- <description summary="user interface for weston-ivi">
+ <interface name="agl_shell" version="2">
+ <description summary="user interface for Automotive Grade Linux platform">
+ Starting with version 2 of the protocol, the client is required to wait
+ for the 'bound_ok' or 'bound_fail' events in order to proceed further.
+
+ In case the client gets a 'bound_fail' event then it should consider that
+ there's another client already bound to the agl_shell protocol.
+ A client that receives a 'bound_ok' event should consider that there's
+ no other client already bound to the interface and can proceed further.
+
+ If the client uses an older version of the protocol it will receive
+ automatically an error and the compositor will terminate the connection,
+ if there's another client already bound the interface.
+
+ If the client receives the 'bound_fail' event and attempts to use the
+ interface further it will receive an error and the compositor will
+ terminate the connection. After the 'bound_fail' event was received the
+ client should call the destructor, which has been added with version 2
+ of the protocol. The client is free to try at a later point in time to
+ see if it will receive the 'bound_ok' event, but there's no explicit way
+ of finding out when that event will be delivered.
+ It is assumed that it can infer that information through other
+ means/other channels.
</description>
+ <request name="destroy" type="destructor" since="2">
+ <description summary="destroys the factory object">
+ </description>
+ </request>
+
<enum name="error">
<entry name="invalid_argument" value="0"/>
<entry name="background_exists" value="1"/>
Tell the server that this client is ready to be shown. The server
will delay presentation during start-up until all shell clients are
ready to be shown, and will display a black screen instead.
- This gives the client an oppurtunity to set up and configure several
+ This gives the client an opportunity to set up and configure several
surfaces into a coherent interface.
The client that binds to this interface must send this request, otherwise
Set the surface to act as a panel of an output. The 'edge' argument
says what edge of the output the surface will be anchored to.
After this request, the server will send a configure event with the
- correponding width/height that the client should use, and 0 for the
+ corresponding width/height that the client should use, and 0 for the
other dimension. E.g. if the edge is 'top', the width will be the
output's width, and the height will be 0.
<arg name="app_id" type="string"/>
<arg name="output" type="object" interface="wl_output"/>
</request>
+
+ <event name="bound_ok" since="2">
+ <description summary="event sent if binding was ok">
+ Informs the client that it was able to bind the agl_shell
+ interface succesfully. Clients are required to wait for this
+ event before continuing further.
+ </description>
+ </event>
+
+ <event name="bound_fail" since="2">
+ <description summary="event sent if binding was nok">
+ Informs the client that binding to the agl_shell interface was
+ unsuccesfull. Clients are required to wait for this event for
+ continuing further.
+ </description>
+ </event>
+
</interface>
</protocol>