agl-shell: Introduce app_state and app_role enums
authorMarius Vlad <marius.vlad@collabora.com>
Wed, 3 Aug 2022 14:05:54 +0000 (17:05 +0300)
committerMarius Vlad <marius.vlad@collabora.com>
Wed, 3 Aug 2022 14:19:58 +0000 (17:19 +0300)
This introduces two enums (previously in agl_shell_desktop) protocol
app_state and app_role.

With it, it also adds an event which the client will receive when
the applications changed its state.  The applications states are:
started/activated/deactivated/destroyed, while the roles are floating
and remoting.

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
protocol/agl-shell.xml

index 75ffdce..e99f86f 100644 (file)
@@ -22,7 +22,7 @@
     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     DEALINGS IN THE SOFTWARE.
   </copyright>
-  <interface name="agl_shell" version="3">
+  <interface name="agl_shell" version="4">
     <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.
       <entry name="right" value="3"/>
     </enum>
 
+    <enum name="app_state" since="4">
+      <entry name="started" value="0"/>
+      <entry name="activated" value="1"/>
+      <entry name="deactivated" value="2"/>
+      <entry name="destroyed" value="3"/>
+    </enum>
+
+    <enum name="app_role" since="4">
+      <entry name="float" value="0"/>
+      <entry name="remote" value="1"/>
+    </enum>
+
     <request name="ready">
       <description summary="client is ready to be shown">
         Tell the server that this client is ready to be shown. The server
       </description>
     </event>
 
+    <event name="app_state" since="4">
+      <description summary="event sent when application has suffered state modification">
+        Notifies application(s) when other application have suffered state modifications.
+      </description>
+      <arg name="app_id" type="string"/>
+      <arg name="state" type="uint" enum="app_state"/>
+      <arg name="role" type="uint" enum="app_role"/>
+    </event>
+
   </interface>
 </protocol>