X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=protocol%2Fagl-shell.xml;h=25b6a69ebb5cb19debb7f9bd2fdd747eac77692f;hb=8b661b747c67e7af7730d058392980a08ca3f07a;hp=11a65a1dc4b1a4f2ecf61c90a38e5bb0f07e9b1a;hpb=6371b14eb0abbb2398453919b024b088a15c6f6d;p=src%2Fagl-compositor.git diff --git a/protocol/agl-shell.xml b/protocol/agl-shell.xml index 11a65a1..25b6a69 100644 --- a/protocol/agl-shell.xml +++ b/protocol/agl-shell.xml @@ -1,7 +1,7 @@ - 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"), @@ -22,8 +22,29 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - + + + 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. @@ -39,6 +60,13 @@ + + + + + + + Tell the server that this client is ready to be shown. The server @@ -113,5 +141,89 @@ + + + + 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. + + + + + + Informs the client that binding to the agl_shell interface was + unsuccesfull. Clients are required to wait for this event for + continuing further. + + + + + + + + + + + Informs the client that an application has changed its state to another, + specified by the app_state enum. Client can use this event to track + current application state. For instance to know when the application has + started, or when terminated/stopped. + + + + + + + + + + This interface allows another client bind to the agl_shell interface in + case there's another shell client already present. + + The client should first bind to this interface and then inform the + compositor with the 'doas_shell_client' request and it wants to bind to + the agl_shell interface. The client is still expected if using a new + version of the agl_shell interface to wait for the 'bound_ok' and + 'bound_fail' events before issueing any other requests/events. + + Note that this interface has its limitations, and the compositor would + still refuse the act for 'set_panel' or 'set_background' requests + of the agl_shell interface if there's already a client that used them. Any + other requests or events should be delievered and handled as it would + a client bound to the agl_shell interface. + + + + + + + + + + Call the destructor once you're ready with agl_shell_ext interface. + This would reset the state and would make any requests made + on the agl_shell interface null. The client would need to bind again + the agl_shell_ext and issue a 'doas_shell_client' request. + + + + + + Prior to binding to agl_shell interface, this request would inform + the compositor it wants to gain access the agl_shell interface. The + client is expected to wait for 'doas_shell_client_done' event and check for + a successful status before going further with binding to the agl_shell + interface. + + + + + + The client should check the status event to verify that the + compositor was able to handle the request. + + +