xref: /aosp_15_r20/external/crosvm/gpu_display/protocol/aura-shell.xml (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker<?xml version="1.0" encoding="UTF-8"?>
2*bb4ee6a4SAndroid Build Coastguard Worker<protocol name="aura_shell">
3*bb4ee6a4SAndroid Build Coastguard Worker  <copyright>
4*bb4ee6a4SAndroid Build Coastguard Worker    Copyright 2017 The Chromium Authors.
5*bb4ee6a4SAndroid Build Coastguard Worker    Permission is hereby granted, free of charge, to any person obtaining a
6*bb4ee6a4SAndroid Build Coastguard Worker    copy of this software and associated documentation files (the "Software"),
7*bb4ee6a4SAndroid Build Coastguard Worker    to deal in the Software without restriction, including without limitation
8*bb4ee6a4SAndroid Build Coastguard Worker    the rights to use, copy, modify, merge, publish, distribute, sublicense,
9*bb4ee6a4SAndroid Build Coastguard Worker    and/or sell copies of the Software, and to permit persons to whom the
10*bb4ee6a4SAndroid Build Coastguard Worker    Software is furnished to do so, subject to the following conditions:
11*bb4ee6a4SAndroid Build Coastguard Worker    The above copyright notice and this permission notice (including the next
12*bb4ee6a4SAndroid Build Coastguard Worker    paragraph) shall be included in all copies or substantial portions of the
13*bb4ee6a4SAndroid Build Coastguard Worker    Software.
14*bb4ee6a4SAndroid Build Coastguard Worker    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15*bb4ee6a4SAndroid Build Coastguard Worker    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*bb4ee6a4SAndroid Build Coastguard Worker    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17*bb4ee6a4SAndroid Build Coastguard Worker    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18*bb4ee6a4SAndroid Build Coastguard Worker    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19*bb4ee6a4SAndroid Build Coastguard Worker    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20*bb4ee6a4SAndroid Build Coastguard Worker    DEALINGS IN THE SOFTWARE.
21*bb4ee6a4SAndroid Build Coastguard Worker  </copyright>
22*bb4ee6a4SAndroid Build Coastguard Worker  <interface name="zaura_shell" version="6">
23*bb4ee6a4SAndroid Build Coastguard Worker    <description summary="aura_shell">
24*bb4ee6a4SAndroid Build Coastguard Worker      The global interface exposing aura shell capabilities is used to
25*bb4ee6a4SAndroid Build Coastguard Worker      instantiate an interface extension for a wl_surface object.
26*bb4ee6a4SAndroid Build Coastguard Worker      This extended interface will then allow the client to use aura shell
27*bb4ee6a4SAndroid Build Coastguard Worker      specific functionality.
28*bb4ee6a4SAndroid Build Coastguard Worker    </description>
29*bb4ee6a4SAndroid Build Coastguard Worker    <enum name="error">
30*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="aura_surface_exists" value="0"
31*bb4ee6a4SAndroid Build Coastguard Worker       summary="the surface already has an aura surface object associated"/>
32*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="aura_output_exists" value="1"
33*bb4ee6a4SAndroid Build Coastguard Worker       summary="the output already has an aura output object associated"/>
34*bb4ee6a4SAndroid Build Coastguard Worker    </enum>
35*bb4ee6a4SAndroid Build Coastguard Worker    <request name="get_aura_surface">
36*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="extend surface interface for aura shell">
37*bb4ee6a4SAndroid Build Coastguard Worker  Instantiate an interface extension for the given wl_surface to
38*bb4ee6a4SAndroid Build Coastguard Worker  provide aura shell functionality. If the given wl_surface is not
39*bb4ee6a4SAndroid Build Coastguard Worker  associated with a shell surface, the shell_surface_missing protocol
40*bb4ee6a4SAndroid Build Coastguard Worker  error is raised.
41*bb4ee6a4SAndroid Build Coastguard Worker      </description>
42*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="id" type="new_id" interface="zaura_surface"
43*bb4ee6a4SAndroid Build Coastguard Worker     summary="the new aura surface interface id"/>
44*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="surface" type="object" interface="wl_surface"
45*bb4ee6a4SAndroid Build Coastguard Worker     summary="the surface"/>
46*bb4ee6a4SAndroid Build Coastguard Worker    </request>
47*bb4ee6a4SAndroid Build Coastguard Worker    <!-- Version 2 additions -->
48*bb4ee6a4SAndroid Build Coastguard Worker    <request name="get_aura_output" since="2">
49*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="extend output interface for aura shell">
50*bb4ee6a4SAndroid Build Coastguard Worker  Instantiate an interface extension for the given wl_output to
51*bb4ee6a4SAndroid Build Coastguard Worker  provide aura shell functionality.
52*bb4ee6a4SAndroid Build Coastguard Worker      </description>
53*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="id" type="new_id" interface="zaura_output"
54*bb4ee6a4SAndroid Build Coastguard Worker     summary="the new aura output interface id"/>
55*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="output" type="object" interface="wl_output"
56*bb4ee6a4SAndroid Build Coastguard Worker     summary="the output"/>
57*bb4ee6a4SAndroid Build Coastguard Worker    </request>
58*bb4ee6a4SAndroid Build Coastguard Worker  </interface>
59*bb4ee6a4SAndroid Build Coastguard Worker  <interface name="zaura_surface" version="5">
60*bb4ee6a4SAndroid Build Coastguard Worker    <description summary="aura shell interface to a wl_surface">
61*bb4ee6a4SAndroid Build Coastguard Worker      An additional interface to a wl_surface object, which allows the
62*bb4ee6a4SAndroid Build Coastguard Worker      client to access aura shell specific functionality for surface.
63*bb4ee6a4SAndroid Build Coastguard Worker    </description>
64*bb4ee6a4SAndroid Build Coastguard Worker    <enum name="frame_type">
65*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="different frame types">
66*bb4ee6a4SAndroid Build Coastguard Worker  Frame types that can be used to decorate a surface.
67*bb4ee6a4SAndroid Build Coastguard Worker      </description>
68*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="none" value="0" summary="no frame"/>
69*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="normal" value="1" summary="caption with shadow" />
70*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="shadow" value="2" summary="shadow only"/>
71*bb4ee6a4SAndroid Build Coastguard Worker    </enum>
72*bb4ee6a4SAndroid Build Coastguard Worker    <request name="set_frame">
73*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="request a frame for surface">
74*bb4ee6a4SAndroid Build Coastguard Worker  Suggests a surface should use a specific frame.
75*bb4ee6a4SAndroid Build Coastguard Worker      </description>
76*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="type" type="uint" summary="the new frame type"/>
77*bb4ee6a4SAndroid Build Coastguard Worker    </request>
78*bb4ee6a4SAndroid Build Coastguard Worker    <!-- Version 2 additions -->
79*bb4ee6a4SAndroid Build Coastguard Worker    <request name="set_parent" since="2">
80*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="set the parent of this surface">
81*bb4ee6a4SAndroid Build Coastguard Worker  Set the "parent" of this surface. "x" and "y" arguments specify the
82*bb4ee6a4SAndroid Build Coastguard Worker  initial position for surface relative to parent.
83*bb4ee6a4SAndroid Build Coastguard Worker      </description>
84*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="parent" type="object" interface="zaura_surface" allow-null="true"/>
85*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="x" type="int"/>
86*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="y" type="int"/>
87*bb4ee6a4SAndroid Build Coastguard Worker    </request>
88*bb4ee6a4SAndroid Build Coastguard Worker    <!-- Version 3 additions -->
89*bb4ee6a4SAndroid Build Coastguard Worker    <request name="set_frame_colors" since="3">
90*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="set the frame colors of this surface">
91*bb4ee6a4SAndroid Build Coastguard Worker  Set the frame colors.
92*bb4ee6a4SAndroid Build Coastguard Worker      </description>
93*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="active_color" type="uint" summary="32 bit ARGB color value, not premultiplied"/>
94*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="inactive_color" type="uint" summary="32 bit ARGB color value, not premultiplied"/>
95*bb4ee6a4SAndroid Build Coastguard Worker    </request>
96*bb4ee6a4SAndroid Build Coastguard Worker    <!-- Version 4 additions -->
97*bb4ee6a4SAndroid Build Coastguard Worker    <request name="set_startup_id" since="4">
98*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="set the startup ID of this surface">
99*bb4ee6a4SAndroid Build Coastguard Worker  Set the startup ID.
100*bb4ee6a4SAndroid Build Coastguard Worker      </description>
101*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="startup_id" type="string" allow-null="true"/>
102*bb4ee6a4SAndroid Build Coastguard Worker    </request>
103*bb4ee6a4SAndroid Build Coastguard Worker    <!-- Version 5 additions -->
104*bb4ee6a4SAndroid Build Coastguard Worker    <request name="set_application_id" since="5">
105*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="set the application ID of this surface">
106*bb4ee6a4SAndroid Build Coastguard Worker  Set the application ID.
107*bb4ee6a4SAndroid Build Coastguard Worker      </description>
108*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="application_id" type="string" allow-null="true"/>
109*bb4ee6a4SAndroid Build Coastguard Worker    </request>
110*bb4ee6a4SAndroid Build Coastguard Worker  </interface>
111*bb4ee6a4SAndroid Build Coastguard Worker  <interface name="zaura_output" version="6">
112*bb4ee6a4SAndroid Build Coastguard Worker    <description summary="aura shell interface to a wl_output">
113*bb4ee6a4SAndroid Build Coastguard Worker      An additional interface to a wl_output object, which allows the
114*bb4ee6a4SAndroid Build Coastguard Worker      client to access aura shell specific functionality for output.
115*bb4ee6a4SAndroid Build Coastguard Worker    </description>
116*bb4ee6a4SAndroid Build Coastguard Worker    <!-- Version 2 additions -->
117*bb4ee6a4SAndroid Build Coastguard Worker    <enum name="scale_property" bitfield="true">
118*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="scale information">
119*bb4ee6a4SAndroid Build Coastguard Worker  These flags describe properties of an output scale.
120*bb4ee6a4SAndroid Build Coastguard Worker  They are used in the flags bitfield of the scale event.
121*bb4ee6a4SAndroid Build Coastguard Worker      </description>
122*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="current" value="0x1"
123*bb4ee6a4SAndroid Build Coastguard Worker       summary="indicates this is the current scale"/>
124*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="preferred" value="0x2"
125*bb4ee6a4SAndroid Build Coastguard Worker       summary="indicates this is the preferred scale"/>
126*bb4ee6a4SAndroid Build Coastguard Worker    </enum>
127*bb4ee6a4SAndroid Build Coastguard Worker    <enum name="scale_factor">
128*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0400" value="400"/>
129*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0500" value="500"/>
130*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0550" value="550"/>
131*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0600" value="600"/>
132*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0625" value="625"/>
133*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0650" value="650"/>
134*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0700" value="700"/>
135*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0750" value="750"/>
136*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0800" value="800"/>
137*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0850" value="850"/>
138*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0900" value="900"/>
139*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="0950" value="950"/>
140*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1000" value="1000"/>
141*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1050" value="1050"/>
142*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1100" value="1100"/>
143*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1150" value="1150"/>
144*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1125" value="1125"/>
145*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1200" value="1200"/>
146*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1250" value="1250"/>
147*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1300" value="1300"/>
148*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1400" value="1400"/>
149*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1450" value="1450"/>
150*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1500" value="1500"/>
151*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1600" value="1600"/>
152*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1750" value="1750"/>
153*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="1800" value="1800"/>
154*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="2000" value="2000"/>
155*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="2200" value="2200"/>
156*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="2250" value="2250"/>
157*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="2500" value="2500"/>
158*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="2750" value="2750"/>
159*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="3000" value="3000"/>
160*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="3500" value="3500"/>
161*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="4000" value="4000"/>
162*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="4500" value="4500"/>
163*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="5000" value="5000"/>
164*bb4ee6a4SAndroid Build Coastguard Worker    </enum>
165*bb4ee6a4SAndroid Build Coastguard Worker    <event name="scale" since="2">
166*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="advertise available scales for the output">
167*bb4ee6a4SAndroid Build Coastguard Worker  The scale event describes an available scale for the output.
168*bb4ee6a4SAndroid Build Coastguard Worker  The event is sent when binding to the output object and there
169*bb4ee6a4SAndroid Build Coastguard Worker  will always be one scale, the current scale. The event is sent
170*bb4ee6a4SAndroid Build Coastguard Worker  again if an output changes scale, for the scale that is now
171*bb4ee6a4SAndroid Build Coastguard Worker  current. In other words, the current scale is always the last
172*bb4ee6a4SAndroid Build Coastguard Worker  scale that was received with the current flag set.
173*bb4ee6a4SAndroid Build Coastguard Worker      </description>
174*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="flags" type="uint" enum="scale_property" summary="bitfield of scale flags"/>
175*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="scale" type="uint" enum="scale_factor" summary="output scale"/>
176*bb4ee6a4SAndroid Build Coastguard Worker    </event>
177*bb4ee6a4SAndroid Build Coastguard Worker    <!-- Version 5 additions -->
178*bb4ee6a4SAndroid Build Coastguard Worker    <enum name="connection_type">
179*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="unknown" value="0"/>
180*bb4ee6a4SAndroid Build Coastguard Worker      <entry name="internal" value="1"/>
181*bb4ee6a4SAndroid Build Coastguard Worker    </enum>
182*bb4ee6a4SAndroid Build Coastguard Worker    <event name="connection" since="5">
183*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="advertise connection for the output">
184*bb4ee6a4SAndroid Build Coastguard Worker  The connection event describes how the output is connected.
185*bb4ee6a4SAndroid Build Coastguard Worker  The event is sent when binding to the output object.
186*bb4ee6a4SAndroid Build Coastguard Worker      </description>
187*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="connection" type="uint" enum="connection_type" summary="output connection"/>
188*bb4ee6a4SAndroid Build Coastguard Worker    </event>
189*bb4ee6a4SAndroid Build Coastguard Worker    <event name="device_scale_factor" since="5">
190*bb4ee6a4SAndroid Build Coastguard Worker      <description summary="advertise device scale factor for the output">
191*bb4ee6a4SAndroid Build Coastguard Worker  This event describes the device specific scale factor for the output.
192*bb4ee6a4SAndroid Build Coastguard Worker  The device specific scale factor is not expected the change during
193*bb4ee6a4SAndroid Build Coastguard Worker  the lifetime of the output. And it is not limited to an integer value
194*bb4ee6a4SAndroid Build Coastguard Worker  like the scale factor provided by wl_output interface. The exact
195*bb4ee6a4SAndroid Build Coastguard Worker  contents scale used by the compositor can be determined by combining
196*bb4ee6a4SAndroid Build Coastguard Worker  this device scale factor with the current output scale.
197*bb4ee6a4SAndroid Build Coastguard Worker  The event is sent when binding to the output object.
198*bb4ee6a4SAndroid Build Coastguard Worker      </description>
199*bb4ee6a4SAndroid Build Coastguard Worker      <arg name="scale" type="uint" enum="scale_factor" summary="output device scale factor"/>
200*bb4ee6a4SAndroid Build Coastguard Worker    </event>
201*bb4ee6a4SAndroid Build Coastguard Worker </interface>
202*bb4ee6a4SAndroid Build Coastguard Worker</protocol>
203