protocol: added process_name to ivi_controller_surface.stats event
[profile/ivi/wayland-ivi-extension.git] / protocol / ivi-controller.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <protocol name="ivi_controller">
3
4     <copyright>
5     Copyright (C) 2013 DENSO CORPORATION
6     Copyright (c) 2013 BMW Car IT GmbH
7
8     Permission is hereby granted, free of charge, to any person obtaining a copy
9     of this software and associated documentation files (the "Software"), to deal
10     in the Software without restriction, including without limitation the rights
11     to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12     copies of the Software, and to permit persons to whom the Software is
13     furnished to do so, subject to the following conditions:
14
15     The above copyright notice and this permission notice shall be included in
16     all copies or substantial portions of the Software.
17
18     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21     AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24     THE SOFTWARE.
25     </copyright>
26
27     <interface name="ivi_controller_surface" version="1">
28         <description summary="Request property change of ivi_surface to server"/>
29
30         <request name="set_visibility">
31             <description summary="Set Visibility"/>
32             <arg name="visibility" type="uint"/>
33         </request>
34
35         <request name="set_opacity">
36             <description summary="Set Opacity"/>
37             <arg name="opacity" type="fixed"/>
38         </request>
39
40         <request name="set_source_rectangle">
41             <description summary="Set the area of wl_surface which should be used for the rendering">
42                 x:      horizontal start position of the used area
43                 y:      vertical start position of the used area
44                 width : width of the area
45                 height: height of the area
46             </description>
47             <arg name="x" type="int"/>
48             <arg name="y" type="int"/>
49             <arg name="width" type="int"/>
50             <arg name="height" type="int"/>
51         </request>
52
53         <request name="set_destination_rectangle">
54             <description summary="Set the destination area of a surface within a layer for rendering">
55                 Set the destination area of a wl_surface within a layer for rendering. The surface will be scaled to this rectangle for rendering.
56                 x:      horizontal start position of the used area
57                 y:      vertical start position of the used area
58                 width : width of the area
59                 height: height of the area
60             </description>
61             <arg name="x" type="int"/>
62             <arg name="y" type="int"/>
63             <arg name="width" type="int"/>
64             <arg name="height" type="int"/>
65         </request>
66
67         <request name="set_configuration">
68             <description summary="request new buffer size for application content"/>
69             <arg name="width" type="int"/>
70             <arg name="height" type="int"/>
71         </request>
72
73         <request name="set_orientation">
74             <description summary="Set Orientation"/>
75             <arg name="orientation" type="int"/>
76         </request>
77
78         <request name="screenshot">
79             <description summary="Take screenshot"/>
80             <arg name="filename" type="string"/>
81         </request>
82
83         <event name="visibility">
84             <description summary="sent in response to set_visibility"/>
85             <arg name="visibility" type="int"/>
86         </event>
87
88         <event name="opacity">
89             <description summary="sent in response to set_opacity"/>
90             <arg name="opacity" type="fixed"/>
91         </event>
92
93         <event name="source_rectangle">
94             <description summary="sent in response to set_source_rectangle"/>
95             <arg name="x" type="int"/>
96             <arg name="y" type="int"/>
97             <arg name="width" type="int"/>
98             <arg name="height" type="int"/>
99         </event>
100
101         <event name="destination_rectangle">
102             <description summary="sent in response to set_destination_rectangle"/>
103             <arg name="x" type="int"/>
104             <arg name="y" type="int"/>
105             <arg name="width" type="int"/>
106             <arg name="height" type="int"/>
107         </event>
108
109         <event name="configuration">
110             <description summary="sent in response to set_configuration"/>
111             <arg name="width" type="int"/>
112             <arg name="height" type="int"/>
113         </event>
114
115         <enum name="orientation">
116             <description summary="orientation presets in degrees"/>
117             <entry name="0_degrees" value="0"
118              summary="not rotated"/>
119             <entry name="90_degrees" value="1"
120              summary="rotated 90 degrees clockwise"/>
121             <entry name="180_degrees" value="2"
122              summary="rotated 180 degrees clockwise"/>
123             <entry name="270_degrees" value="3"
124              summary="rotated 270 degrees clockwise"/>
125         </enum>
126
127         <event name="orientation">
128             <description summary="sent in response to set_orientation"/>
129             <arg name="orientation" type="int"/>
130         </event>
131
132         <enum name="pixelformat">
133             <description summary="pixel format values"/>
134             <entry name="r_8" value="0"
135              summary="8 bit luminance surface"/>
136             <entry name="rgb_888" value="1"
137              summary="24 bit rgb surface"/>
138             <entry name="rgba_8888" value="2"
139              summary="24 bit rgb surface with 8 bit alpha"/>
140             <entry name="rgb_565" value="3"
141              summary="16 bit rgb surface"/>
142             <entry name="rgba_5551" value="4"
143              summary="16 bit rgb surface with binary mask"/>
144             <entry name="rgba_6661" value="5"
145              summary="18 bit rgb surface with binary mask"/>
146             <entry name="rgba_4444" value="6"
147              summary="12 bit rgb surface with 4 bit alpha"/>
148             <entry name="unknown" value="7"
149              summary="unknown"/>
150         </enum>
151
152         <event name="pixelformat">
153             <description summary="pixelformat"/>
154             <arg name="pixelformat" type="int"/>
155         </event>
156
157         <event name="layer">
158             <description summary="Receive a ivi_layer this ivi_surface belongs"/>
159             <arg name="layer" type="object" interface="ivi_controller_layer" allow-null="true"/>
160         </event>
161
162         <request name="send_stats"/>
163
164         <event name="stats">
165             <description summary="sent in response to send_stats"/>
166             <arg name="redraw_count" type="uint"/>
167             <arg name="frame_count" type="uint"/>
168             <arg name="update_count" type="uint"/>
169             <arg name="pid" type="uint"/>
170             <arg name="process_name" type="string" allow-null="true"/>
171         </event>
172
173         <request name="destroy" type="destructor">
174             <description summary="destroy ivi_controller_surface"/>
175             <arg name="destroy_scene_object" type="int"/>
176         </request>
177
178         <event name="destroyed">
179             <description summary="destroyed surface event"/>
180         </event>
181
182         <enum name="content_state">
183             <description summary="all possible states of content for a surface"/>
184             <entry name="content_available" value="1"
185                    summary="application provided wl_surface for this surface"/>
186             <entry name="content_removed" value="2"
187                    summary="wl_surface was removed for this surface"/>
188         </enum>
189
190         <event name="content">
191             <description summary="content state for surface has changed"/>
192             <arg name="content_state" type="int"/>
193         </event>
194
195         <request name="set_input_focus">
196             <description summary="set input_focus to this surface to direct non-graphical inputs (e.g. keyboard) to application providing this surface"/>
197             <arg name="enabled" type="int"/>
198         </request>
199
200         <event name="focus">
201             <description summary="received if input focus of surface has changed"/>
202             <arg name="enabled" type="int"/>
203         </event>
204
205     </interface>
206
207     <interface name="ivi_controller_layer" version="1">
208         <description summary="Request property change of ivi_layer and add/remove ivi_surface from ivi_layer to server"/>
209
210         <request name="set_visibility">
211             <description summary="Set Visibility"/>
212             <arg name="visibility" type="uint"/>
213         </request>
214
215         <request name="set_opacity">
216             <description summary="Set Opacity"/>
217             <arg name="opacity" type="fixed"/>
218         </request>
219
220         <request name="set_source_rectangle">
221             <description summary="Set the area of layer which should be used for the rendering">
222                 x:      horizontal start position of the used area
223                 y:      vertical start position of the used area
224                 width : width of the area
225                 height: height of the area
226             </description>
227             <arg name="x" type="int"/>
228             <arg name="y" type="int"/>
229             <arg name="width" type="int"/>
230             <arg name="height" type="int"/>
231         </request>
232
233         <request name="set_destination_rectangle">
234             <description summary="Set the destination area on the display for a layer">
235                 Set the destination area on the display for a layer. The layer will be scaled and positioned to this rectangle for rendering
236                 x:      horizontal start position of the used area
237                 y:      vertical start position of the used area
238                 width : width of the area
239                 height: height of the area
240             </description>
241             <arg name="x" type="int"/>
242             <arg name="y" type="int"/>
243             <arg name="width" type="int"/>
244             <arg name="height" type="int"/>
245         </request>
246
247         <request name="set_configuration">
248             <description summary="Set new configuration for layer"/>
249             <arg name="width" type="int"/>
250             <arg name="height" type="int"/>
251         </request>
252
253         <request name="set_orientation">
254             <description summary="Set Orientation"/>
255             <arg name="orientation" type="int"/>
256         </request>
257
258         <request name="screenshot">
259             <description summary="Take screenshot"/>
260             <arg name="filename" type="string"/>
261         </request>
262
263         <request name="clear_surfaces">
264             <description summary="remove all ivi_surfaces from a layer"/>
265         </request>
266
267         <request name="add_surface">
268             <description summary="add a ivi_surface to top order of a ivi_layer"/>
269             <arg name="surface" type="object" interface="ivi_controller_surface"/>
270         </request>
271
272         <request name="remove_surface">
273             <description summary="remove a ivi_surface from a layer"/>
274             <arg name="surface" type="object" interface="ivi_controller_surface"/>
275         </request>
276
277         <request name="set_render_order">
278             <description summary="Set Render Order"/>
279             <arg name="id_surfaces" type="array"/>
280         </request>
281
282         <event name="visibility">
283             <description summary="sent in response to set_visibility"/>
284             <arg name="visibility" type="int"/>
285         </event>
286
287         <event name="opacity">
288             <description summary="sent in response to set_opacity"/>
289             <arg name="opacity" type="fixed"/>
290         </event>
291
292         <event name="source_rectangle">
293             <description summary="sent in response to set_source_rectangle"/>
294             <arg name="x" type="int"/>
295             <arg name="y" type="int"/>
296             <arg name="width" type="int"/>
297             <arg name="height" type="int"/>
298         </event>
299
300         <event name="destination_rectangle">
301             <description summary="sent in response to set_destination_rectangle"/>
302             <arg name="x" type="int"/>
303             <arg name="y" type="int"/>
304             <arg name="width" type="int"/>
305             <arg name="height" type="int"/>
306         </event>
307
308         <event name="configuration">
309             <description summary="sent in response to set_configuration"/>
310             <arg name="width" type="int"/>
311             <arg name="height" type="int"/>
312         </event>
313
314         <event name="orientation">
315             <description summary="sent in response to set_orientation"/>
316             <arg name="orientation" type="int"/>
317         </event>
318
319         <event name="screen">
320             <description summary="Receive a wl_output this ivi_layer belongs"/>
321             <arg name="screen" type="object" interface="wl_output" allow-null="true"/>
322         </event>
323
324         <request name="destroy" type="destructor">
325             <description summary="destroy ivi_controller_layer"/>
326             <arg name="destroy_scene_object" type="int"/>
327         </request>
328
329         <event name="destroyed">
330             <description summary="destroyed layer event"/>
331         </event>
332
333     </interface>
334
335     <interface name="ivi_controller_screen" version="1">
336         <description summary="Request add/remove layer from ivi_layer to server"/>
337
338         <request name="destroy" type="destructor">
339             <description summary="destroy ivi_controller_screen"/>
340         </request>
341
342         <request name="clear">
343             <description summary="remove all ivi_layers from wl_output"/>
344         </request>
345
346         <request name="add_layer">
347             <description summary="add a ivi_layer to top order of a wl_output"/>
348             <arg name="layer" type="object" interface="ivi_controller_layer"/>
349         </request>
350
351         <request name="screenshot">
352             <description summary="Take screenshot"/>
353             <arg name="filename" type="string"/>
354         </request>
355
356         <request name="set_render_order">
357             <description summary="Set Render Order"/>
358             <arg name="id_layers" type="array"/>
359         </request>
360
361     </interface>
362
363     <interface name="ivi_controller" version="1">
364         <description summary="Interface for central controller of layers and surfaces"/>
365
366         <request name="commit_changes">
367             <description summary="commit changes and request done by client"/>
368         </request>
369
370         <event name="screen">
371             <description summary="Receive new additional screen controller"/>
372             <arg name="id_screen" type="uint"/>
373             <arg name="screen" type="new_id" interface="ivi_controller_screen"/>
374         </event>
375
376         <request name="layer_create">
377             <description summary="ilm_layerCreateWithDimension"/>
378             <arg name="id_layer" type="uint"/>
379             <arg name="width" type="int"/>
380             <arg name="height" type="int"/>
381             <arg name="id" type="new_id" interface="ivi_controller_layer"/>
382         </request>
383
384         <event name="layer">
385             <description summary="Receive id_layer and a layer controller"/>
386             <arg name="id_layer" type="uint"/>
387         </event>
388
389         <request name="surface_create">
390             <description summary="create surface controller"/>
391             <arg name="id_surface" type="uint"/>
392             <arg name="id" type="new_id" interface="ivi_controller_surface"/>
393         </request>
394
395         <event name="surface">
396             <description summary="Receive id_surface and a controller to control ivi_surface"/>
397             <arg name="id_surface" type="uint"/>
398         </event>
399
400         <enum name="object_type">
401             <description summary="available object types in ivi compositor scene"/>
402             <entry name="surface" value="1" summary="surface object type"/>
403             <entry name="layer"   value="2" summary="layer object type"/>
404             <entry name="screen"  value="3" summary="screen object type"/>
405         </enum>
406
407         <enum name="error_code">
408             <description summary="possible error codes returned in error event"/>
409             <entry name="unknown_error" value="1" summary="unknown error encountered"/>
410             <entry name="file_error"    value="2" summary="file i/o error encountered"/>
411         </enum>
412
413         <event name="error">
414             <description summary="request resulted in server-side error"/>
415             <arg name="object_id" type="int"/>
416             <arg name="object_type" type="int"/>
417             <arg name="error_code" type="int"/>
418             <arg name="error_text" type="string" allow-null="true"/>
419         </event>
420
421     </interface>
422
423 </protocol>
424