Packaging : update version to 1.1.12
[platform/core/uifw/wayland-extension.git] / protocol / tizen-extension.xml
1 <protocol name="tizen_extension">
2   <interface name="tizen_surface" version="1">
3     <request name="get_tizen_resource">
4       <arg name="id" type="new_id" interface="tizen_resource" />
5       <arg name="surface" type="object" interface="wl_surface" />
6     </request>
7   </interface>
8
9   <interface name="tizen_resource" version="1">
10     <request name="destroy" type="destructor" />
11
12     <event name="resource_id">
13       <arg name="id" type="uint" />
14     </event>
15   </interface>
16
17   <interface name="tizen_policy" version="1">
18     <request name="get_visibility">
19       <arg name="id" type="new_id" interface="tizen_visibility" summary="new visibility object"/>
20       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
21     </request>
22
23     <request name="get_position">
24       <arg name="id" type="new_id" interface="tizen_position" summary="new position object"/>
25       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
26     </request>
27
28     <request name="activate">
29       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
30     </request>
31
32     <request name="activate_below_by_res_id">
33       <arg name="res_id" type="uint" />
34       <arg name="below_res_id" type="uint" />
35     </request>
36
37     <request name="raise">
38       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
39     </request>
40
41     <request name="lower">
42       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
43     </request>
44
45     <request name="lower_by_res_id">
46       <arg name="res_id" type="uint" />
47     </request>
48
49     <request name="set_focus_skip">
50       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
51     </request>
52
53     <request name="unset_focus_skip">
54       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
55     </request>
56
57     <request name="set_role">
58       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
59       <arg name="role" type="string"/>
60     </request>
61
62     <enum name="win_type">
63       <entry name="none" value="0"/>
64       <entry name="toplevel" value="1"/>
65       <entry name="fullscreen" value="2"/>
66       <entry name="maximized" value="3"/>
67       <entry name="transient" value="4"/>
68       <entry name="menu" value="5"/>
69       <entry name="dnd" value="6"/>
70       <entry name="custom" value="7"/>
71       <entry name="notification" value="8"/>
72       <entry name="utility" value="9"/>
73     </enum>
74
75     <request name="set_type">
76       <arg name="surface" type="object" interface="wl_surface"/>
77       <arg name="win_type" type="uint" />
78     </request>
79
80     <!-- for conformant -->
81     <request name="set_conformant">
82       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
83     </request>
84
85     <request name="unset_conformant">
86       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
87     </request>
88
89     <request name="get_conformant">
90       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
91     </request>
92
93     <event name="conformant">
94       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
95       <arg name="is_conformant" type="uint"/>
96     </event>
97
98     <enum name="conformant_part">
99       <entry name="indicator" value="0"/>
100       <entry name="keyboard" value="1"/>
101       <entry name="clipboard" value="2"/>
102     </enum>
103
104     <event name="conformant_area">
105       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
106       <arg name="conformant_part" type="uint"/>
107       <arg name="state" type="uint"/>
108       <arg name="x" type="int"/>
109       <arg name="y" type="int"/>
110       <arg name="w" type="int"/>
111       <arg name="h" type="int"/>
112     </event>
113
114     <enum name="error_state">
115       <entry name="none" value="0"/>
116       <entry name="permission_denied" value="1"/>
117     </enum>
118
119     <!-- for notification -->
120     <enum name="level">
121       <entry name="1" value="0"/>
122       <entry name="2" value="1"/>
123       <entry name="3" value="2"/>
124       <entry name="none" value="-1"/>
125       <entry name="default" value="10"/>
126       <entry name="medium" value="20"/>
127       <entry name="high" value="30"/>
128       <entry name="top" value="40"/>
129     </enum>
130
131     <request name="set_notification_level">
132       <arg name="surface" type="object" interface="wl_surface"/>
133       <arg name="level" type="int"/>
134     </request>
135
136     <event name="notification_done">
137       <arg name="surface" type="object" interface="wl_surface"/>
138       <arg name="level" type="int"/>
139       <arg name="error_state" type="uint"/>
140     </event>
141
142     <!-- for transient_for -->
143     <request name="set_transient_for">
144       <arg name="child_id" type="uint" />
145       <arg name="parent_id" type="uint" />
146     </request>
147
148     <request name="unset_transient_for">
149       <arg name="child_id" type="uint" />
150     </request>
151
152     <event name="transient_for_done">
153       <arg name="child_id" type="uint"/>
154     </event>
155
156     <!-- for window_screen_mode -->
157     <enum name="mode">
158       <entry name="default" value="0"/>
159       <entry name="always_on" value="1"/>
160     </enum>
161
162     <request name="set_window_screen_mode">
163       <arg name="surface" type="object" interface="wl_surface"/>
164       <arg name="mode" type="uint"/>
165     </request>
166
167     <event name="window_screen_mode_done">
168       <arg name="surface" type="object" interface="wl_surface"/>
169       <arg name="mode" type="uint"/>
170       <arg name="error_state" type="uint"/>
171     </event>
172
173     <!-- for subsurface -->
174     <request name="place_subsurface_below_parent">
175       <arg name="subsurface" type="object" interface="wl_subsurface"/>
176     </request>
177
178     <request name="set_subsurface_stand_alone">
179       <arg name="subsurface" type="object" interface="wl_subsurface"/>
180     </request>
181
182     <request name="get_subsurface">
183       <arg name="id" type="new_id" interface="wl_subsurface" />
184       <arg name="surface" type="object" interface="wl_surface" />
185       <arg name="parent_id" type="uint" />
186     </request>
187
188     <!-- for opaque_state -->
189     <request name="set_opaque_state">
190       <arg name="surface" type="object" interface="wl_surface" />
191       <arg name="state" type="int"/>
192     </request>
193
194     <!-- for iconify -->
195     <request name="iconify">
196       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
197     </request>
198     <request name="uniconify">
199       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
200     </request>
201
202     <event name="iconify_state_changed">
203       <arg name="surface" type="object" interface="wl_surface"/>
204       <arg name="iconified" type="uint"/>
205       <arg name="force" type="uint"/>
206     </event>
207
208     <!-- for aux_hint -->
209     <request name="add_aux_hint">
210       <arg name="surface" type="object" interface="wl_surface"/>
211       <arg name="id" type="int" />
212       <arg name="name" type="string" />
213       <arg name="value" type="string" />
214     </request>
215
216     <request name="change_aux_hint">
217       <arg name="surface" type="object" interface="wl_surface"/>
218       <arg name="id" type="int" />
219       <arg name="value" type="string" />
220     </request>
221
222     <request name="del_aux_hint">
223       <arg name="surface" type="object" interface="wl_surface"/>
224       <arg name="id" type="int" />
225     </request>
226
227     <request name="get_supported_aux_hints">
228       <arg name="surface" type="object" interface="wl_surface"/>
229     </request>
230
231     <event name="supported_aux_hints">
232       <arg name="surface" type="object" interface="wl_surface"/>
233       <arg name="hints" type="array" />
234       <arg name="num_hints" type="uint"/>
235     </event>
236
237     <event name="allowed_aux_hint">
238       <arg name="surface" type="object" interface="wl_surface"/>
239       <arg name="id" type="int" />
240     </event>
241
242     <!-- for aux_message -->
243     <event name="aux_message">
244       <arg name="surface" type="object" interface="wl_surface" />
245       <arg name="key" type="string" />
246       <arg name="value" type="string" />
247       <arg name="options" type="array" />
248     </event>
249
250     <!-- for background state -->
251     <request name="set_background_state">
252        <arg name="pid" type="uint" />
253     </request>
254
255     <request name="unset_background_state">
256        <arg name="pid" type="uint" />
257     </request>
258
259     <!-- for floating mode -->
260     <request name="set_floating_mode">
261       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
262     </request>
263
264     <request name="unset_floating_mode">
265       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
266     </request>
267
268     <!-- for stack mode -->
269     <enum name="stack_mode">
270       <entry name="none" value="0"/>
271       <entry name="above" value="1"/>
272       <entry name="below" value="2"/>
273     </enum>
274
275     <request name="set_stack_mode">
276       <arg name="surface" type="object" interface="wl_surface"/>
277       <arg name="mode" type="uint" />
278     </request>
279   </interface>
280
281   <interface name="tizen_visibility" version="1">
282     <request name="destroy" type="destructor"/>
283
284     <enum name="visibility">
285       <entry name="unobscured" value="0"/>
286       <entry name="partially_obscured" value="1"/>
287       <entry name="fully_obscured" value="2"/>
288     </enum>
289
290     <event name="notify">
291       <arg name="visibility" type="uint"/>
292     </event>
293   </interface>
294
295   <interface name="tizen_position" version="1">
296     <request name="destroy" type="destructor"/>
297
298     <request name="set">
299       <arg name="x" type="int"/>
300       <arg name="y" type="int"/>
301     </request>
302
303     <event name="changed">
304       <arg name="x" type="int"/>
305       <arg name="y" type="int"/>
306     </event>
307   </interface>
308
309   <interface name="tizen_gesture" version="1">
310     <enum name="error">
311       <entry name="none" value="0"/>
312       <entry name="invalid_data" value="1"/>
313       <entry name="no_permission" value="2"/>
314       <entry name="no_system_resources" value="3"/>
315       <entry name="grabbed_already" value="4"/>
316     </enum>
317
318     <enum name="type">
319       <entry name="swipe" value="1"/>
320     </enum>
321
322     <enum name="mode">
323       <entry name="begin" value="1"/>
324       <entry name="update" value="2"/>
325       <entry name="end" value="3"/>
326       <entry name="done" value="4"/>
327     </enum>
328
329     <enum name="direction">
330       <entry name="down" value="1"/>
331       <entry name="left" value="2"/>
332       <entry name="up" value="4"/>
333       <entry name="right" value="8"/>
334     </enum>
335
336     <request name="grab_swipe">
337       <arg name="num_of_fingers" type="uint"/>
338       <arg name="direction" type="uint"/>
339     </request>
340
341     <request name="ungrab_swipe">
342       <arg name="num_of_fingers" type="uint"/>
343       <arg name="direction" type="uint"/>
344     </request>
345
346     <event name="grab_swipe_notify">
347       <arg name="num_of_fingers" type="uint"/>
348       <arg name="direction" type="uint" enum="direction"/>
349       <arg name="error" type="uint"/>
350     </event>
351
352     <event name="swipe">
353       <arg name="mode" type="uint" enum="mode"/>
354       <arg name="num_of_fingers" type="uint"/>
355       <arg name="sx" type="int" summary="x coordinate of touch down point"/>
356       <arg name="sy" type="int" summary="y coordinate of touch down point"/>
357       <arg name="direction" type="uint" enum="direction"/>
358     </event>
359   </interface>
360
361   <interface name="tizen_keyrouter" version="1">
362     <description summary="an interface to set each focus for each key">
363       In tradition, all the keys in a keyboard and a device on which
364       some keys are attached will be sent to focus surface by default.
365       Currently it's possible to set up each focus for each key in a keyboard and a device.
366       Therefore, by setting a key grab for a surface, the owner of the
367       surface will get the key event when it has the key grab for the key.
368     </description>
369
370     <enum name="error">
371       <entry name="none" value="0" summary="no error"/>
372       <entry name="invalid_surface" value="1" summary="Given surface is invalid."/>
373       <entry name="invalid_key" value="2" summary="Given key is invalid."/>
374       <entry name="invalid_mode" value="3" summary="Given mode is invalid."/>
375       <entry name="grabbed_already" value="4" summary="The key has been grabbed already."/>
376       <entry name="no_permission" value="5" summary="The wl client has no permission to grab the key."/>
377       <entry name="no_system_resources" value="6" summary="System resources are insufficient."/>
378       <entry name="invalid_array" value="7" summary="Given array has invalid pairs or data type."/>
379     </enum>
380
381     <enum name="mode">
382       <description summary="mode for a key grab">
383         This value is used to set a mode for a key grab. With this mode and
384         the order of the surface between surfaces' stack, the compositor will determine the destination client
385         surface.
386       </description>
387       <entry name="none" value="0" summary="none"/>
388       <entry name="shared" value="1"
389        summary="mode to get a key grab with the other client surfaces when the focused client surface gets the key"/>
390       <entry name="topmost" value="2"
391        summary="mode to get a key grab when the client surface is the top most surface"/>
392       <entry name="overridable_exclusive" value="3"
393        summary="mode to get a key grab exclusively, overridably regardless of the order in the surface stack"/>
394       <entry name="exclusive" value="4"
395        summary="mode to get a key grab exclusively regardless of the order in surface stack"/>
396       <entry name="registered" value="5"
397        summary="mode to get a key grab only when a requesting surface is on top among the registering surfaces for the key"/>
398     </enum>
399
400     <enum name="config_mode">
401       <description summary="mode for setting specific property for Key delivery">
402         This value is used to set a mode for a window. With this mode and
403         the order of the surface between surfaces' stack, the compositor will determine the destination client
404         surface.
405       </description>
406       <entry name="none" value="0" summary="none"/>
407       <entry name="invisible_set" value="1"
408        summary="mode to set window to enable send event to invisible window below in stack"/>
409       <entry name="invisible_get" value="2"
410        summary="mode to set window to get event to invisible state if any top window has set register_set"/>
411       <entry name="num_key_focus" value="3"
412           summary="mode to register for num keys for focus window"/>
413       <entry name="picture_off" value="4"
414           summary="mode to set picture off for particular key"/>
415     </enum>
416
417     <request name="set_keygrab">
418       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
419       <arg name="key" type="uint"/>
420       <arg name="mode" type="uint"/>
421     </request>
422
423     <request name="unset_keygrab">
424       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
425       <arg name="key" type="uint"/>
426     </request>
427
428     <request name="get_keygrab_status">
429       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
430       <arg name="key" type="uint"/>
431     </request>
432
433     <request name="set_keygrab_list">
434       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
435       <arg name="grab_list" type="array" summary="array of two integer variables pairs each pairs consist of keycode and keygrab mode"/>
436     </request>
437
438     <request name="unset_keygrab_list">
439       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
440       <arg name="ungrab_list" type="array" summary="array of integer variables meaning keycode wanted to ungrab"/>
441     </request>
442
443     <request name="get_keygrab_list">
444       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
445     </request>
446
447     <request name="set_register_none_key">
448       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
449       <arg name="data" type="uint"/>
450     </request>
451
452     <request name="get_keyregister_status">
453       <arg name="data" type="uint"/>
454     </request>
455
456     <request name="set_input_config">
457       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
458       <arg name="config_mode" type="uint"/>
459       <arg name="value" type="uint"/>
460     </request>
461
462     <event name="keygrab_notify">
463       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
464       <arg name="key" type="uint"/>
465       <arg name="mode" type="uint"/>
466       <arg name="error" type="uint"/>
467     </event>
468
469     <event name="keygrab_notify_list">
470       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
471       <arg name="grab_result" type="array" summary="array of three integer variables pairs each pairs consist of keycode, keygrab mode and keygrab result"/>
472     </event>
473
474     <event name="getgrab_notify_list">
475       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
476       <arg name="grab_result" type="array" summary="array of two integer variables pairs each pairs consist of keycode, keygrab mode"/>
477     </event>
478
479     <event name="set_register_none_key_notify">
480       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
481       <arg name="mode" type="uint"/>
482     </event>
483
484     <event name="keyregister_notify">
485       <arg name="status" type="uint"/>
486     </event>
487
488     <event name="set_input_config_notify">
489       <arg name="status" type="uint"/>
490     </event>
491   </interface>
492
493   <interface name="tizen_screenshooter" version="1">
494     <description summary="interface for tizen-screenshooter">
495       Clients can get a screenmirror object from this interface.
496     </description>
497
498     <request name="get_screenmirror">
499       <description summary="create a screenmirror object">
500         Before using screenmirror, a client should get a screenmirror object from display
501         server.
502       </description>
503       <arg name="id" type="new_id" interface="tizen_screenmirror" summary="new screenmirror object"/>
504       <arg name="output" type="object" interface="wl_output" summary="output object for screenmirror"/>
505     </request>
506
507     <event name="format">
508       <description summary="supported format for screenshooter">
509         The tbm format codes match the #defines in tbm_surface.h. The formats actually
510         supported by the compositor will be reported by the format event.
511       </description>
512       <arg name="format" type="uint"/>
513     </event>
514
515   </interface>
516
517   <interface name="tizen_screenmirror" version="1">
518     <description summary="interface for screenmirror">
519       A client can use this interface to get stream images of screen. Before starting,
520       queue all buffers. Then, start a screenmirror. After starting, a dequeued event
521       will occur when drawing a captured image on a buffer is finished. You might
522       need to queue the dequeued buffer again to get a new image from display server.
523     </description>
524
525     <request name="destroy" type="destructor"/>
526
527     <request name="set_stretch">
528       <arg name="stretch" type="uint" summary="stretch type for screenmirror"/>
529     </request>
530
531     <request name="queue">
532       <description summary="queue a buffer"/>
533         <arg name="buffer" type="object" interface="wl_buffer" summary="buffer object for screenmirror"/>
534     </request>
535
536     <request name="dequeue">
537       <description summary="dequeue a buffer">
538         A user can dequeue a buffer from display server when he wants to take back it from server.
539       </description>
540       <arg name="buffer" type="object" interface="wl_buffer" summary="buffer object for screenmirror"/>
541     </request>
542
543     <request name="start"/>
544     <request name="stop"/>
545
546     <enum name="content">
547       <entry name="normal" value="0"/>
548       <entry name="video" value="1"/>
549     </enum>
550
551     <enum name="stretch">
552       <entry name="keep_ratio" value="0"/>
553       <entry name="fully" value="1"/>
554     </enum>
555
556     <event name="dequeued">
557       <description summary="dequeued event">
558         occurs when drawing a captured image on a buffer is finished
559       </description>
560       <arg name="buffer" type="object" interface="wl_buffer" summary="dequeued buffer which contains a captured image"/>
561     </event>
562
563     <event name="content">
564       <description summary="content changed event">
565         occurs when the content of a captured image is changed. (normal or video)
566       </description>
567       <arg name="content" type="uint"/>
568     </event>
569
570     <event name="stop">
571       <description summary="stop event">
572         occurs when the screenmirror is stopped eventually
573       </description>
574     </event>
575   </interface>
576
577   <interface name="tizen_video" version="1">
578
579     <description summary="interface for tizen-video">
580       Clients can get the video information that the compositor can handle from this interface.
581     </description>
582
583     <enum name="error">
584       <entry name="none" value="0"/>
585       <entry name="object_exists" value="1"/>
586       <entry name="viewport_exists" value="2"/>
587     </enum>
588
589     <event name="format">
590       <description summary="supported format for video">
591         The tbm format codes match the #defines in tbm_surface.h. The formats actually
592         supported by the compositor will be reported by the format event.
593       </description>
594       <arg name="format" type="uint"/>
595     </event>
596
597     <request name="get_object">
598       <arg name="id" type="new_id" interface="tizen_video_object" />
599       <arg name="surface" type="object" interface="wl_surface" />
600     </request>
601
602     <request name="get_viewport">
603       <arg name="id" type="new_id" interface="tizen_viewport" />
604       <arg name="surface" type="object" interface="wl_surface" />
605     </request>
606
607   </interface>
608
609   <interface name="tizen_video_object" version="1">
610
611     <event name="attribute">
612       <arg name="name" type="string"/>
613       <arg name="value" type="uint"/>
614     </event>
615
616     <event name="size">
617       <arg name="min_w" type="int"/>
618       <arg name="min_h" type="int"/>
619       <arg name="max_w" type="int"/>
620       <arg name="max_h" type="int"/>
621       <arg name="prefer_align" type="int"/>
622     </event>
623
624     <request name="destroy" type="destructor"/>
625     <request name="set_attribute">
626       <arg name="name" type="string"/>
627       <arg name="value" type="int"/>
628     </request>
629
630   </interface>
631
632   <interface name="tizen_viewport" version="1">
633
634       <description summary="the viewport for a surface">
635     This is the alternative and convenient solution of wl_viewport to present
636     a surface on screen.
637
638     The below five functions can be replaced with this interface. The below
639     functions will be ignored after applying this interface to a surface.
640      - wl_surface.set_buffer_transform
641      - wl_surface.set_buffer_scale
642      - wl_subsurface.set_position
643      - wl_viewport.set_source
644      - wl_viewport.set_destination
645
646     wl_viewport.set_source is very complicated especially when the buffer of
647     wl_surface is transformed by wl_surface.set_buffer_transform. And when the
648     parent is resized, if we want to change the geometry of a subsurface also,
649     wl_subsurface.set_position and wl_viewport.set_destination should be called
650     everytime the parent is resized in client side. This makes difficult to
651     synchronize a parent surface and a subsurface on screen.
652
653     tizen_viewport allows clients to set the relative geometry to a subsurface
654     in a parent surface. Whenever a parent surface is resized, the geometry of
655     a subsurface will be calculated, moved and resized automatically by a
656     compositor. The tizen_viewport is specified in the coordinates of a
657     subsurface's parent.
658
659         If tizen_viewport is applied to a shell surface(toplevel), the all value related
660         with x, y pos of tizen_viewport and tizen_destination_mode interface will be ignored.
661
662     The below 3 functions don't consider the transform of a parent's surface.
663      - tizen_viewport.set_source
664      - tizen_viewport.set_destination
665      - tizen_viewport.set_destination_ratio
666
667     Furthermore, tizen_destination_mode.follow_parent_transform is called,
668     tizen_viewport will consider the transform of a parent surface when applying
669     the destination mode to a subsurface. If tizen_destination_mode.follow_parent_transform
670     is applied to a shell surface, it will be ignored.
671
672     The destination will be cropped by a parent surface.
673
674     The change will be applied when wl_surface.commit is called.
675       </description>
676
677     <event name="destination_changed">
678       <arg name="transform" type="uint"/>
679       <arg name="x" type="int"/>
680       <arg name="y" type="int"/>
681       <arg name="width" type="uint"/>
682       <arg name="height" type="uint"/>
683     </event>
684
685     <request name="destroy" type="destructor" />
686
687     <request name="set_transform">
688       <description summary="set the transform of a surface">
689     The accepted values for the transform parameter are the values for wl_output.transform
690     according to the output transform.
691
692     The tizen_viewport.set_transform is applied only to itself. Basically it
693     doesn't effect the transform of its subsurfaces. That is, if 90 transform is
694     setted and its subsurface still has 0 transform, its subsurface won't be
695     rotated.
696
697     If needed to rotate the subsurface depended on a parent surface,
698     tizen_destination_mode.follow_parent_transform will make it possible.
699
700       </description>
701       <arg name="transform" type="uint"/>
702     </request>
703
704     <request name="set_source">
705       <description summary="set the source rectalge of a wl_buffer">
706     The source rectangle won't be changed when a parent is resized. If it needs
707     to be changed, tizen_viewport.set_source should be called with new values.
708       </description>
709       <arg name="x" type="uint"/>
710       <arg name="y" type="uint"/>
711       <arg name="width" type="uint"/>
712       <arg name="height" type="uint"/>
713     </request>
714
715     <request name="set_destination">
716       <description summary="set the destination geometry of a surface">
717     The destination geometry won't be changed when a parent is resized. If it
718     needs to be changed, tizen_viewport.set_destination should be called with
719     new values.
720
721         If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
722         tizen_viewport.set_destination will be ignored.
723       </description>
724       <arg name="x" type="int"/>
725       <arg name="y" type="int"/>
726       <arg name="width" type="uint"/>
727       <arg name="height" type="uint"/>
728     </request>
729
730     <request name="set_destination_ratio">
731       <description summary="set the ratio destination rectalge in a parent surface">
732     The destination rectangle of a subsurface will be automatically changed
733     when a parent is resized. This allows the real number between 0.0 and 1.0.
734     See wl_fixed_from_double and wl_fixed_to_double.
735
736         If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
737         tizen_viewport.set_destination_ratio will be ignored.
738       </description>
739       <arg name="x" type="fixed"/>
740       <arg name="y" type="fixed"/>
741       <arg name="width" type="fixed"/>
742       <arg name="height" type="fixed"/>
743     </request>
744
745     <request name="get_destination_mode">
746       <arg name="id" type="new_id" interface="tizen_destination_mode" />
747     </request>
748
749   </interface>
750
751   <interface name="tizen_destination_mode" version="1">
752
753       <description summary="the destination mode for a surface">
754     The destination rectangle will be automatically changed when a parent is
755     resized. When tizen_destination_mode.set is called, the value of
756     tizen_viewport.set_destination and tizen_viewport.set_destination_ratio
757     will be ignored.
758
759     The destination of a surface is decided by the mode, ratio, scale, offset
760     and align values. The ratio, scale, offset and align will be applied
761     sequentially.
762
763     The change will be applied when wl_surface.commit is called.
764       </description>
765
766     <enum name="error">
767       <entry name="invalid_type" value="0"/>
768     </enum>
769
770     <enum name="type">
771       <entry name="none" value="0"/>
772       <entry name="letter_box" value="1"/>
773       <entry name="origin" value="2"/>
774       <entry name="full" value="3"/>
775       <entry name="cropped_full" value="4"/>
776       <entry name="origin_or_letter" value="5"/>
777     </enum>
778
779     <request name="destroy" type="destructor" />
780
781     <request name="follow_parent_transform">
782       <description summary="follow the transform change of a parent surface">
783     The real transform of a subsurface is (parent's transform + subsurface's transform).
784     That is, the subsurface will be rotated automatically when the parent is rotated.
785
786     If tizen_destination_mode.follow_parent_transform is applied to a shell surface(toplevel),
787     it will be ignored.
788       </description>
789     </request>
790
791     <request name="unfollow_parent_transform" />
792
793     <request name="set" summary="set the destination mode">
794       <arg name="mode" type="uint" enum="type"/>
795     </request>
796
797     <request name="set_ratio">
798       <description summary="set the ratio of the destination rectangle of a subsurface">
799     This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
800       </description>
801       <arg name="horizontal" type="fixed"/>
802       <arg name="vertical" type="fixed"/>
803     </request>
804
805     <request name="set_scale">
806       <description summary="set the scale of the destination rectangle of a subsurface">
807     This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
808       </description>
809       <arg name="horizontal" type="fixed"/>
810       <arg name="vertical" type="fixed"/>
811     </request>
812
813     <request name="set_align">
814       <description summary="set the align of the destination rectangle of a subsurface">
815     This allows the real number between 0.0 and 1.0. See wl_fixed_from_double and
816     wl_fixed_to_double.
817       </description>
818       <arg name="horizontal" type="fixed"/>
819       <arg name="vertical" type="fixed"/>
820     </request>
821
822     <request name="set_offset">
823       <arg name="x" type="int"/>
824       <arg name="y" type="int"/>
825       <arg name="w" type="int"/>
826       <arg name="h" type="int"/>
827     </request>
828
829   </interface>
830
831   <interface name="tizen_embedded_compositor" version="1">
832
833     <description summary="global embedded compositor object">
834       The global obejct. Wayland has 3 type of compositor, embedded compositor is one of them.
835       But tizen application is sendboxing by smack, then a application not allow commutication to other application by socket.
836       So system or session compositor create socket and send to embedded compostior.
837     </description>
838
839     <request name="get_socket">
840       <description summary="create new socket">
841         The get_socket request ask the server to create socket and emit socket event.
842       </description>
843     </request>
844
845     <event name="socket">
846       <description summary="socket fd">
847         Sent immediately after get_socket request
848       </description>
849       <arg name="sock_fd" type="fd"/>
850     </event>
851
852   </interface>
853
854   <interface name="tizen_input_device_manager" version="1">
855     <description summary="global input device manager object">
856       Tizen input device manager is a global interface. This object has device add/remove events
857       to provide tizen input device object to a client. This allows for a client to get the con
858
859       Be sure to bind this interface after binding wl_seat interface.
860       Tizen input device manager interface will only provide device add/remove event for devices
861       which belongs to the wl_seat object(s) bound by the client. Therefore, the compositor needs to
862       create/send the device add/remove event only for the current client's seat(s).
863     </description>
864
865     <event name="device_add">
866       <description summary="device addition event">
867         The device add/remove notification is going to be sent when a physical/logical device is
868         added/removed to/from the given seat. Note that a tizen input device object can be assigned to
869         a wl_seat and can also be assigned to the other wl_seat at any time. Whenever a relationship between
870         a tizen input device object changes, device remove event from the current wl_seat object will be made
871         and device add event to the other wl_seat object will also be mode.
872       </description>
873       <arg name="serial" type="uint"/>
874       <arg name="identifier" type="string"/>
875       <arg name="device" type="new_id" interface="tizen_input_device"/>
876       <arg name="seat" type="object" interface="wl_seat"/>
877     </event>
878
879     <event name="device_remove">
880       <description summary="device removal event">
881         The device add/remove notification is going to be sent when a physical/logical device is
882         added/removed to/from the given seat. Note that a tizen input device object can be assigned to
883         a wl_seat and can also be assigned to the other wl_seat at any time. Whenever a relationship between
884         a tizen input device object changes, device remove event from the current wl_seat object will be made
885         and device add event to the other wl_seat object will also be mode.
886       </description>
887       <arg name="serial" type="uint"/>
888       <arg name="identifier" type="string"/>
889       <arg name="device" type="object" interface="tizen_input_device"/>
890       <arg name="seat" type="object" interface="wl_seat"/>
891     </event>
892
893     <enum name="clas">
894        <description summary="device class">
895        </description>
896        <entry name="none" value="0" summary="none of class"/>
897        <entry name="mouse" value="1" summary="mouse class"/>
898        <entry name="keyboard" value="2" summary="keyboard class"/>
899        <entry name="touchscreen" value="4" summary="touchscreen class"/>
900     </enum>
901
902     <enum name="error">
903       <entry name="none" value="0" summary="no error"/>
904       <entry name="no_permission" value="1" summary="no permission"/>
905       <entry name="invalid_class" value="2" summary="invalid class"/>
906       <entry name="blocked_already" value="3" summary="blocked already by the other client"/>
907       <entry name="no_system_resources" value="4" summary="no system resources such as memory lack"/>
908       <entry name="invalid_parameter" value="5" summary="argument is invalid"/>
909       <entry name="invalid_surface" value="6" summary="the given surface is not visible or pointer is not on the given surface"/>
910       <entry name="no_pointer_available" value="7" summary="there is no pointer available to warp"/>
911     </enum>
912
913     <event name="error">
914       <description summary="error event">
915       </description>
916       <arg name="errorcode" type="uint" enum="error"/>
917     </event>
918
919     <event name="block_expired">
920       <description summary="block expiration event">
921         This event will be sent if the duration of existing block is expired.
922         Note that no block expired event will be sent if there is no block for the client.
923       </description>
924     </event>
925
926     <request name="block_events">
927       <description summary="request to block sending event(s)">
928         This request allows a client to request to block one or more events for its purpose.
929         By specifying class as an argument in the request, the events belongs to the class will be blocked
930         during the given duration. Note that an error event will be sent if there is any error.
931       </description>
932       <arg name="serial" type="uint" summary=""/>
933       <arg name="clas" type="uint" enum="clas"/>
934       <arg name="duration" type="uint" summary="time duration with millisecond granularity"/>
935     </request>
936
937     <request name="unblock_events">
938       <description summary="request to unblock sending event(s)">
939         This request allows a client to request to release the existing block for the client.
940         Note that no error event will be sent if there is no existing block for the client.
941       </description>
942       <arg name="serial" type="uint" summary=""/>
943     </request>
944
945     <request name="init_generator">
946       <description summary="initialize input generator system">
947       </description>
948     </request>
949
950     <request name="deinit_generator">
951       <description summary="deinitialize input generator system">
952       </description>
953     </request>
954
955     <request name="generate_key">
956       <description summary="generate a key event using specific or default device">
957       </description>
958       <arg name="keyname" type="string"/>
959       <arg name="pressed" type="uint"/>
960     </request>
961
962     <enum name="pointer_event_type">
963       <entry name="begin" value="0"/>
964       <entry name="update" value="1"/>
965       <entry name="end" value="2"/>
966     </enum>
967
968     <request name="generate_pointer">
969       <description summary="generate a pointer event using specific or default device">
970       </description>
971       <arg name="type" type="uint" enum="pointer_event_type"/>
972       <arg name="x" type="uint"/>
973       <arg name="y" type="uint"/>
974       <arg name="button" type="uint"/>
975     </request>
976
977     <request name="generate_touch">
978       <description summary="generate a touch event using specific or default device">
979       </description>
980       <arg name="type" type="uint" enum="pointer_event_type"/>
981       <arg name="x" type="uint"/>
982       <arg name="y" type="uint"/>
983       <arg name="finger" type="uint"/>
984     </request>
985
986     <request name="pointer_warp">
987       <description summary="warp pointer to the relative position to the given surface">
988       </description>
989       <arg name="surface" type="object" interface="wl_surface"/>
990       <arg name="x" type="fixed"/>
991       <arg name="y" type="fixed"/>
992     </request>
993   </interface>
994
995   <interface name="tizen_input_device" version="1">
996     <description summary="tizen input device object">
997       The tizen_input_device interface represents one or more input devices associated with a physical/logical
998       input device. This interface provides device specific information/events to allows for client to identify
999       the source device of an event or to get the additional axes/attributes of a device.
1000       Note that a tizen_input_device object can be used for a physical input device and can also be used for a
1001       group of input devices. e.g. a group of mouse devices
1002     </description>
1003
1004     <enum name="clas">
1005        <description summary="device class">
1006        </description>
1007        <entry name="none" value="0" summary="none of class"/>
1008        <entry name="keyboard" value="2" summary="keyboard class"/>
1009        <entry name="mouse" value="3" summary="mouse class"/>
1010        <entry name="touchscreen" value="4" summary="touchscreen class"/>
1011     </enum>
1012
1013     <enum name="subclas">
1014        <description summary="device subclass">
1015        </description>
1016        <entry name="none" value="0" summary="none of subclass"/>
1017     </enum>
1018
1019     <enum name="axis_type">
1020       <description summary="axis type enums which can be supported by a device">
1021       </description>
1022       <entry name="none" value="0" summary="radius of x axis of an event area e.g. touching area with a finger or a pen"/>
1023       <entry name="radius_x" value="1" summary="radius of x axis of an event area e.g. touching area with a finger or a pen"/>
1024       <entry name="radius_y" value="2" summary="radius of y axis of an event area e.g. touching area with a finger or a pen"/>
1025       <entry name="pressure" value="3" summary="pressure in an event area e.g. touching area with a finger or a pen"/>
1026       <entry name="angle" value="4" summary="angle in an event area e.g. touching area with a finger or a pen"/>
1027       <entry name="detent" value="5" summary="detent value e.g. moved distance with a rotary device"/>
1028     </enum>
1029
1030     <event name="device_info">
1031       <description summary="event contains device information">
1032       </description>
1033       <arg name="name" type="string"/>
1034       <arg name="clas" type="uint" enum="clas"/>
1035       <arg name="subclas" type="uint" enum="subclas"/>
1036       <arg name="axes" type="array" summary="array of axis enum"/>
1037     </event>
1038
1039     <event name="event_device">
1040       <description summary="event indicates the source device associated with a wl_pointer/keyboard/touch event">
1041       </description>
1042       <arg name="serial" type="uint"/>
1043       <arg name="name" type="string"/>
1044       <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
1045     </event>
1046
1047     <request name="select_axes">
1048       <description summary="request for selecting some of axes among the axes supported by a tizen_input_device object">
1049       </description>
1050       <arg name="axes" type="array" summary="array of axis num"/>
1051     </request>
1052
1053     <event name="axis">
1054       <description summary="axis change event">
1055       </description>
1056       <arg name="axis_type" type="uint" enum="axis_type"/>
1057       <arg name="value" type="fixed" summary="axis value"/>
1058     </event>
1059
1060     <request name="release" type="destructor">
1061       <description summary="release the tizen_input_device object">
1062       </description>
1063     </request>
1064   </interface>
1065
1066   <interface name="tizen_launchscreen" version="1">
1067     <request name="create_img">
1068       <arg name="id" type="new_id" interface="tizen_launch_image" summary="new tizen_launch_image object"/>
1069     </request>
1070   </interface>
1071
1072   <interface name="tizen_launch_image" version="1">
1073     <!-- launch img -->
1074     <enum name="file_type">
1075       <entry name="img" value="0" summary="splash image file path"/>
1076       <entry name="edj" value="1" summary="splash edj file path"/>
1077     </enum>
1078
1079     <enum name="indicator">
1080       <entry name="off" value="0" summary="splash hide indicator"/>
1081       <entry name="on" value="1" summary="splash show indicator"/>
1082     </enum>
1083
1084     <enum name="rotation">
1085       <entry name="0" value="0" summary="rotation angle 0 degree"/>
1086       <entry name="90" value="90" summary="rotation angle 90 degree"/>
1087       <entry name="180" value="180" summary="rotation angle 180 degree"/>
1088       <entry name="270" value="270" summary="rotation angle 270 degree"/>
1089     </enum>
1090
1091     <request name="destroy" type="destructor"/>
1092
1093     <request name="launch">
1094       <arg name="file" type="string"/>
1095       <arg name="file_type" type="uint" />
1096       <arg name="color_depth" type="uint" />
1097       <arg name="rotation" type="uint" />
1098       <arg name="indicator" type="uint" />
1099       <arg name="options" type="array" />
1100     </request>
1101
1102     <request name="owner">
1103       <arg name="pid" type="uint" />
1104     </request>
1105
1106     <request name="show">
1107     </request>
1108
1109     <request name="hide">
1110     </request>
1111   </interface>
1112
1113   <interface name="tizen_effect" version="1">
1114      <enum name="type">
1115       <entry name="none" value="0" summary="none"/>
1116       <entry name="show" value="1" summary="show effect of window"/>
1117       <entry name="hide" value="2" summary="hide effect of window"/>
1118       <entry name="restack" value="3" summary="restack effect of window"/>
1119      </enum>
1120      <request name="destroy" type="destructor" />
1121      <event name="start">
1122        <arg name="surface" type="object" interface="wl_surface"/>
1123        <arg name="type" type="uint" />
1124      </event>
1125      <event name="end">
1126        <arg name="surface" type="object" interface="wl_surface"/>
1127        <arg name="type" type="uint" />
1128      </event>
1129   </interface>
1130
1131   <interface name="tizen_display_policy" version="1">
1132     <enum name="error_state">
1133       <entry name="none" value="0"/>
1134       <entry name="permission_denied" value="1"/>
1135     </enum>
1136     <!-- for window brightness -->
1137     <request name="set_window_brightness">
1138       <arg name="surface" type="object" interface="wl_surface"/>
1139       <arg name="brightness" type="int"/>
1140     </request>
1141
1142     <event name="window_brightness_done">
1143       <arg name="surface" type="object" interface="wl_surface"/>
1144       <arg name="brightness" type="int"/>
1145       <arg name="error_state" type="uint"/>
1146     </event>
1147   </interface>
1148
1149   <interface name="tizen_indicator" version="1">
1150     <enum name="state">
1151       <entry name="unknown" value="0" summary="unknown"/>
1152       <entry name="off" value="1" summary="can not show indicator"/>
1153       <entry name="on" value="2" summary="can show indicator"/>
1154     </enum>
1155     <enum name="opacity_mode">
1156       <entry name="unknown" value="0" summary="unknown"/>
1157       <entry name="opaque" value="1" summary="opaque mode"/>
1158       <entry name="translucent" value="2" summary="translucent mode"/>
1159       <entry name="transparent" value="3" summary="transparent all mode"/>
1160       <entry name="bg_transparent" value="4" summary="transparent only background mode"/>
1161     </enum>
1162     <enum name="visible_type">
1163       <entry name="hidden" value="0" summary="hidden type indicator"/>
1164       <entry name="shown" value="1" summary="shown type indicator"/>
1165     </enum>
1166
1167     <request name="destroy" type="destructor"/>
1168     <request name="set_state">
1169       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1170       <arg name="state" type="int" />
1171     </request>
1172     <request name="set_opacity_mode">
1173       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1174       <arg name="mode" type="int" />
1175     </request>
1176     <request name="set_visible_type">
1177       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1178       <arg name="type" type="int" />
1179     </request>
1180
1181     <event name="flick">
1182       <arg name="surface" type="object" interface="wl_surface" summary="occur the flick event"/>
1183       <arg name="type" type="int"/>
1184     </event>
1185   </interface>
1186 </protocol>