tizen_surface: specify the descrption of the tizen_surface interface
[platform/core/uifw/wayland-extension.git] / protocol / tizen / tizen-extension.xml
1 <protocol name="tizen_extension">
2   <interface name="tizen_surface" version="1">
3     <description summary="tizen-specific surface">
4       The tizen_surface provides tizen-specific functionalities for the given
5       surface.
6     </description>
7
8     <request name="get_tizen_resource">
9       <description summary="get a tizen_resource object">
10         Create a tizen_resource interface for the given surface.
11       </description>
12       <arg name="id" type="new_id" interface="tizen_resource" summary="the new tizen_resource object"/>
13       <arg name="surface" type="object" interface="wl_surface" summary="the the surface object"/>
14     </request>
15
16     <request name="destroy" type="destructor">
17       <description summary="destroy tizen_surface">
18         Destroy this tizen_surface object.
19       </description>
20     </request>
21
22   </interface>
23
24   <interface name="tizen_resource" version="1">
25     <request name="destroy" type="destructor" />
26
27     <event name="resource_id">
28       <arg name="id" type="uint" />
29     </event>
30   </interface>
31
32   <interface name="tizen_policy" version="12">
33     <request name="get_visibility">
34       <arg name="id" type="new_id" interface="tizen_visibility" summary="new visibility object"/>
35       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
36     </request>
37
38     <request name="get_position">
39       <arg name="id" type="new_id" interface="tizen_position" summary="new position object"/>
40       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
41     </request>
42
43     <request name="activate">
44       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
45     </request>
46
47     <request name="activate_below_by_res_id">
48       <arg name="res_id" type="uint" />
49       <arg name="below_res_id" type="uint" />
50     </request>
51
52     <request name="raise">
53       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
54     </request>
55
56     <request name="lower">
57       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
58     </request>
59
60     <request name="lower_by_res_id">
61       <arg name="res_id" type="uint" />
62     </request>
63
64     <request name="set_focus_skip">
65       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
66     </request>
67
68     <request name="unset_focus_skip">
69       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
70     </request>
71
72     <request name="set_role">
73       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
74       <arg name="role" type="string"/>
75     </request>
76
77     <enum name="win_type">
78       <entry name="none" value="0"/>
79       <entry name="toplevel" value="1"/>
80       <entry name="fullscreen" value="2"/>
81       <entry name="maximized" value="3"/>
82       <entry name="transient" value="4"/>
83       <entry name="menu" value="5"/>
84       <entry name="dnd" value="6"/>
85       <entry name="custom" value="7"/>
86       <entry name="notification" value="8"/>
87       <entry name="utility" value="9"/>
88       <entry name="dialog" value="10"/>
89       <entry name="dock" value="11"/>
90       <entry name="splash" value="12"/>
91       <entry name="desktop" value="13" since="11"/>
92     </enum>
93
94     <request name="set_type">
95       <arg name="surface" type="object" interface="wl_surface"/>
96       <arg name="win_type" type="uint" />
97     </request>
98
99     <!-- for conformant -->
100     <request name="set_conformant">
101       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
102     </request>
103
104     <request name="unset_conformant">
105       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
106     </request>
107
108     <request name="get_conformant">
109       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
110     </request>
111
112     <event name="conformant">
113       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
114       <arg name="is_conformant" type="uint"/>
115     </event>
116
117     <enum name="conformant_part">
118       <entry name="indicator" value="0"/>
119       <entry name="keyboard" value="1"/>
120       <entry name="clipboard" value="2"/>
121     </enum>
122
123     <event name="conformant_area">
124        <description summary="Notify of conformant area">
125           Notify of conformant area to client. Sending this event does NOT guarantee
126           perfect compositing of conformant owner client surface and
127           conformant part client surface.
128       </description>
129       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
130       <arg name="conformant_part" type="uint"/>
131       <arg name="state" type="uint"/>
132       <arg name="x" type="int"/>
133       <arg name="y" type="int"/>
134       <arg name="w" type="int"/>
135       <arg name="h" type="int"/>
136     </event>
137
138     <enum name="error_state">
139       <entry name="none" value="0"/>
140       <entry name="permission_denied" value="1"/>
141     </enum>
142
143     <!-- for notification -->
144     <enum name="level">
145       <entry name="1" value="0"/>
146       <entry name="2" value="1"/>
147       <entry name="3" value="2"/>
148       <entry name="none" value="-1"/>
149       <entry name="default" value="10"/>
150       <entry name="medium" value="20"/>
151       <entry name="high" value="30"/>
152       <entry name="top" value="40"/>
153     </enum>
154
155     <request name="set_notification_level">
156       <arg name="surface" type="object" interface="wl_surface"/>
157       <arg name="level" type="int"/>
158     </request>
159
160     <event name="notification_done">
161       <arg name="surface" type="object" interface="wl_surface"/>
162       <arg name="level" type="int"/>
163       <arg name="error_state" type="uint"/>
164     </event>
165
166     <!-- for transient_for -->
167     <request name="set_transient_for">
168       <arg name="child_id" type="uint" />
169       <arg name="parent_id" type="uint" />
170     </request>
171
172     <request name="unset_transient_for">
173       <arg name="child_id" type="uint" />
174     </request>
175
176     <event name="transient_for_done">
177       <arg name="child_id" type="uint"/>
178     </event>
179
180     <!-- for window_screen_mode -->
181     <enum name="mode">
182       <entry name="default" value="0"/>
183       <entry name="always_on" value="1"/>
184     </enum>
185
186     <request name="set_window_screen_mode">
187       <arg name="surface" type="object" interface="wl_surface"/>
188       <arg name="mode" type="uint"/>
189     </request>
190
191     <event name="window_screen_mode_done">
192       <arg name="surface" type="object" interface="wl_surface"/>
193       <arg name="mode" type="uint"/>
194       <arg name="error_state" type="uint"/>
195     </event>
196
197     <!-- for subsurface -->
198     <request name="place_subsurface_below_parent">
199       <arg name="subsurface" type="object" interface="wl_subsurface"/>
200     </request>
201
202     <request name="set_subsurface_stand_alone">
203       <arg name="subsurface" type="object" interface="wl_subsurface"/>
204     </request>
205
206     <request name="get_subsurface">
207       <arg name="id" type="new_id" interface="wl_subsurface" />
208       <arg name="surface" type="object" interface="wl_surface" />
209       <arg name="parent_id" type="uint" />
210     </request>
211
212     <!-- for opaque_state -->
213     <request name="set_opaque_state">
214       <arg name="surface" type="object" interface="wl_surface" />
215       <arg name="state" type="int"/>
216     </request>
217
218     <!-- for iconify -->
219     <request name="iconify">
220       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
221     </request>
222     <request name="uniconify">
223       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
224     </request>
225
226     <event name="iconify_state_changed">
227       <arg name="surface" type="object" interface="wl_surface"/>
228       <arg name="iconified" type="uint"/>
229       <arg name="force" type="uint"/>
230     </event>
231
232     <!-- for aux_hint -->
233     <request name="add_aux_hint">
234       <arg name="surface" type="object" interface="wl_surface"/>
235       <arg name="id" type="int" />
236       <arg name="name" type="string" />
237       <arg name="value" type="string" />
238     </request>
239
240     <request name="change_aux_hint">
241       <arg name="surface" type="object" interface="wl_surface"/>
242       <arg name="id" type="int" />
243       <arg name="value" type="string" />
244     </request>
245
246     <request name="del_aux_hint">
247       <arg name="surface" type="object" interface="wl_surface"/>
248       <arg name="id" type="int" />
249     </request>
250
251     <request name="get_supported_aux_hints">
252       <arg name="surface" type="object" interface="wl_surface"/>
253     </request>
254
255     <event name="supported_aux_hints">
256       <arg name="surface" type="object" interface="wl_surface"/>
257       <arg name="hints" type="array" />
258       <arg name="num_hints" type="uint"/>
259     </event>
260
261     <event name="allowed_aux_hint">
262       <arg name="surface" type="object" interface="wl_surface"/>
263       <arg name="id" type="int" />
264     </event>
265
266     <!-- for aux_message -->
267     <event name="aux_message">
268       <arg name="surface" type="object" interface="wl_surface" />
269       <arg name="key" type="string" />
270       <arg name="value" type="string" />
271       <arg name="options" type="array" />
272     </event>
273
274     <!-- for background state -->
275     <request name="set_background_state">
276        <arg name="pid" type="uint" />
277     </request>
278
279     <request name="unset_background_state">
280        <arg name="pid" type="uint" />
281     </request>
282
283     <!-- for floating mode -->
284     <request name="set_floating_mode">
285       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
286     </request>
287
288     <request name="unset_floating_mode">
289       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
290     </request>
291
292     <!-- for stack mode -->
293     <enum name="stack_mode">
294       <entry name="none" value="0"/>
295       <entry name="above" value="1"/>
296       <entry name="below" value="2"/>
297     </enum>
298
299     <request name="set_stack_mode">
300       <arg name="surface" type="object" interface="wl_surface"/>
301       <arg name="mode" type="uint" />
302     </request>
303
304     <request name="activate_above_by_res_id">
305       <arg name="res_id" type="uint" />
306       <arg name="above_res_id" type="uint" />
307     </request>
308
309     <!-- version 2 additions -->
310     <!-- for subsurface watcher -->
311     <request name="get_subsurface_watcher" since="2">
312       <arg name="id" type="new_id" interface="tizen_subsurface_watcher" />
313       <arg name="surface" type="object" interface="wl_surface" />
314     </request>
315
316     <!-- version 3 additions -->
317     <request name="set_parent" since="3">
318       <arg name="child" type="object" interface="wl_surface" />
319       <arg name="parent" type="object" interface="wl_surface" />
320     </request>
321
322     <!-- version 4 additions -->
323     <!-- for conformant -->
324     <event name="conformant_region" since="4">
325       <description summary="notify of geometry values of conformant region(area)">
326          The server can notify of conformant region(area) using this event.
327          If client is received this event, client should ack for it using
328          tizen_policy@ack_conformant_region request.
329       </description>
330       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
331       <arg name="conformant_part" type="uint"/>
332       <arg name="state" type="uint"/>
333       <arg name="x" type="int"/>
334       <arg name="y" type="int"/>
335       <arg name="w" type="int"/>
336       <arg name="h" type="int"/>
337       <arg name="serial" type="uint"/>
338     </event>
339
340     <request name="ack_conformant_region" since="4">
341       <description summary="ack for tizen_policy@conformant_region">
342          A client can refresh its surface for applying new conformant region which
343          is from tizen_policy@conformant_region event. The client has to ack
344          after complete of its updates by this request.
345       </description>
346       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
347       <arg name="serial" type="uint"/>
348     </request>
349
350     <request name="destroy" type="destructor" since="6">
351       <description summary="destroy the tizen_policy">
352         Destroy the tizen_policy.
353       </description>
354     </request>
355
356     <request name="has_video" since="7">
357       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
358       <arg name="has" type="uint"/>
359     </request>
360
361     <request name="set_appid" since="7">
362        <arg name="pid" type="int" />
363        <arg name="appid" type="string" />
364     </request>
365
366     <request name="show" since="8">
367       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
368     </request>
369
370     <request name="hide" since="8">
371       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
372     </request>
373
374     <request name="set_transient_for_below" since="9">
375       <description summary="set transient_for and place under the transient_for parent">
376          This makes a relationship between parent and child. A child is always placed under a parent.
377       </description>
378       <arg name="child_id" type="uint" />
379       <arg name="parent_id" type="uint" />
380     </request>
381
382     <request name="set_parent_with_below" since="9">
383       <description summary="set parent and place under the parent">
384          This makes a relationship between parent and child. A child is always placed under a parent.
385          Setting a null parent for a child window removes any parent-child relationship for the child.
386       </description>
387       <arg name="child" type="object" interface="wl_surface" />
388       <arg name="parent" type="object" interface="wl_surface" allow-null="true"/>
389     </request>
390
391     <event name="interactive_move_done" since="10">
392       <description summary="interactive move is done">
393          This event is sent when the display server finishes interactive moving the window.
394          The changed geometry of the window is sent together.
395       </description>
396       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
397       <arg name="x" type="int" summary="x-position after move"/>
398       <arg name="y" type="int" summary="y-position after move"/>
399       <arg name="w" type="uint" summary="width after move"/>
400       <arg name="h" type="uint" summary="height after move"/>
401       <arg name="angle" type="int" summary="current angle of surface"/>
402     </event>
403
404     <event name="interactive_resize_done" since="10">
405       <description summary="interactive resize is done">
406          This event is sent when the display server finishes interactive resizing the window.
407          The changed geometry of the window is sent together.
408       </description>
409       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
410       <arg name="x" type="int" summary="x-position after resize"/>
411       <arg name="y" type="int" summary="y-position after resize"/>
412       <arg name="w" type="uint" summary="width after resize"/>
413       <arg name="h" type="uint" summary="height after resize"/>
414       <arg name="angle" type="int" summary="current angle of surface"/>
415     </event>
416
417     <!-- for maximize direction -->
418     <enum name="maximize_direction">
419       <entry name="none" value="0" summary="none. same to unmaximize"/>
420       <entry name="all" value="1" summary="the full size of the screen"/>
421       <entry name="left" value="2" summary="the left side of the screen"/>
422       <entry name="right" value="3" summary="the right side of the screen"/>
423       <entry name="top" value="4" summary="the top of the screen"/>
424       <entry name="bottom" value="5" summary="the bottom of the screen"/>
425     </enum>
426
427     <request name="set_maximize_direction" since="12">
428       <description summary="set maximize direction">
429          Set the maximize direction of the surface.
430       </description>
431       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
432       <arg name="direction" type="uint" enum="maximize_direction" summary="maximize direction"/>
433     </request>
434
435   </interface>
436
437   <interface name="tizen_visibility" version="5">
438     <request name="destroy" type="destructor"/>
439
440     <enum name="visibility">
441       <entry name="unobscured" value="0"/>
442       <entry name="partially_obscured" value="1"/>
443       <entry name="fully_obscured" value="2"/>
444       <entry name="pre_unobscured" value="3" since="5"/>
445     </enum>
446
447     <event name="notify">
448       <arg name="visibility" type="uint"/>
449     </event>
450
451     <!-- Version 6 additions -->
452
453     <event name="changed" since="5">
454       <arg name="type" type="uint" enum="visibility" summary="changed visibility type"/>
455       <arg name="option" type="uint" summary="extra value"/>
456     </event>
457
458   </interface>
459
460   <interface name="tizen_position" version="1">
461     <request name="destroy" type="destructor"/>
462
463     <request name="set">
464       <arg name="x" type="int"/>
465       <arg name="y" type="int"/>
466     </request>
467
468     <event name="changed">
469       <arg name="x" type="int"/>
470       <arg name="y" type="int"/>
471     </event>
472   </interface>
473
474   <interface name="tizen_move_resize" version="1">
475     <request name="destroy" type="destructor"/>
476
477     <request name="set_geometry">
478       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
479       <arg name="serial" type="uint" />
480       <arg name="x" type="int"/>
481       <arg name="y" type="int"/>
482       <arg name="w" type="int"/>
483       <arg name="h" type="int"/>
484     </request>
485
486     <enum name="error_state">
487       <entry name="none" value="0"/>
488       <entry name="invalid_buffer" value="1"/>
489       <entry name="not_supported" value="2"/>
490     </enum>
491
492     <event name="geometry_done">
493       <description summary="Notify of set_geometry request result">
494       </description>
495       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
496       <arg name="serial" type="uint" />
497       <arg name="x" type="int"/>
498       <arg name="y" type="int"/>
499       <arg name="w" type="int"/>
500       <arg name="h" type="int"/>
501       <arg name="error_state" type="uint" enum="error_state"/>
502     </event>
503   </interface>
504
505   <interface name="tizen_gesture" version="2">
506     <enum name="error">
507       <entry name="none" value="0"/>
508       <entry name="invalid_data" value="1"/>
509       <entry name="no_permission" value="2"/>
510       <entry name="no_system_resources" value="3"/>
511       <entry name="grabbed_already" value="4"/>
512       <entry name="not_supported" value="5"/>
513     </enum>
514
515     <enum name="type">
516       <entry name="edge_swipe" value="1"/>
517       <entry name="edge_drag" value="2" since="2"/>
518       <entry name="tap" value="4" since="2"/>
519       <entry name="palm_cover" value="8" since="2"/>
520       <entry name="pan" value="16" since="2"/>
521       <entry name="pinch" value="32" since="2"/>
522       <entry name="palm_swipe" value="64" since="2"/>
523     </enum>
524
525     <enum name="mode">
526       <entry name="begin" value="1"/>
527       <entry name="update" value="2"/>
528       <entry name="end" value="3"/>
529       <entry name="done" value="4"/>
530     </enum>
531
532     <enum name="edge">
533       <entry name="top" value="1"/>
534       <entry name="right" value="2"/>
535       <entry name="bottom" value="3"/>
536       <entry name="left" value="4"/>
537     </enum>
538
539     <enum name="edge_size">
540       <entry name="none" value="0"/>
541       <entry name="full" value="1"/>
542       <entry name="partial" value="2"/>
543     </enum>
544
545     <request name="grab_edge_swipe">
546       <arg name="fingers" type="uint"/>
547       <arg name="edge" type="uint" enum="edge"/>
548       <arg name="edge_size" type="uint" enum="edge_size"/>
549       <arg name="start_point" type="uint"/>
550       <arg name="end_point" type="uint"/>
551     </request>
552
553     <request name="ungrab_edge_swipe">
554       <arg name="fingers" type="uint"/>
555       <arg name="edge" type="uint" enum="edge"/>
556       <arg name="edge_size" type="uint" enum="edge_size"/>
557       <arg name="start_point" type="uint"/>
558       <arg name="end_point" type="uint"/>
559     </request>
560
561     <event name="grab_edge_swipe_notify">
562       <arg name="fingers" type="uint"/>
563       <arg name="edge" type="uint" enum="edge"/>
564       <arg name="edge_size" type="uint" enum="edge_size"/>
565       <arg name="start_point" type="uint"/>
566       <arg name="end_point" type="uint"/>
567       <arg name="error" type="uint"/>
568     </event>
569
570     <event name="edge_swipe">
571       <arg name="mode" type="uint" enum="mode"/>
572       <arg name="fingers" type="uint"/>
573       <arg name="sx" type="int" summary="x coordinate of touch down point"/>
574       <arg name="sy" type="int" summary="y coordinate of touch down point"/>
575       <arg name="edge" type="uint" enum="edge"/>
576     </event>
577
578     <request name="grab_edge_drag">
579       <arg name="fingers" type="uint"/>
580       <arg name="edge" type="uint" enum="edge"/>
581       <arg name="edge_size" type="uint" enum="edge_size"/>
582       <arg name="start_point" type="uint"/>
583       <arg name="end_point" type="uint"/>
584     </request>
585
586     <request name="ungrab_edge_drag">
587       <arg name="fingers" type="uint"/>
588       <arg name="edge" type="uint" enum="edge"/>
589       <arg name="edge_size" type="uint" enum="edge_size"/>
590       <arg name="start_point" type="uint"/>
591       <arg name="end_point" type="uint"/>
592     </request>
593
594     <event name="edge_drag_notify">
595       <arg name="fingers" type="uint"/>
596       <arg name="edge" type="uint" enum="edge"/>
597       <arg name="edge_size" type="uint" enum="edge_size"/>
598       <arg name="start_point" type="uint"/>
599       <arg name="end_point" type="uint"/>
600       <arg name="error" type="uint"/>
601     </event>
602
603     <event name="edge_drag">
604       <arg name="mode" type="uint" enum="mode"/>
605       <arg name="fingers" type="uint"/>
606       <arg name="cx" type="int" summary="x coordinate of center touch point"/>
607       <arg name="cy" type="int" summary="y coordinate of center touch point"/>
608       <arg name="edge" type="uint" enum="edge"/>
609     </event>
610
611     <request name="grab_tap" since="2">
612       <arg name="fingers" type="uint"/>
613       <arg name="repeats" type="uint"/>
614     </request>
615
616     <request name="ungrab_tap" since="2">
617       <arg name="fingers" type="uint"/>
618       <arg name="repeats" type="uint"/>
619     </request>
620
621     <event name="tap_notify" since="2">
622       <arg name="fingers" type="uint"/>
623       <arg name="repeats" type="uint"/>
624       <arg name="error" type="uint"/>
625     </event>
626
627     <event name="tap" since="2">
628       <arg name="mode" type="uint" enum="mode"/>
629       <arg name="fingers" type="uint"/>
630       <arg name="repeats" type="uint"/>
631     </event>
632
633     <request name="grab_palm_cover" since="2">
634     </request>
635
636     <request name="ungrab_palm_cover" since="2">
637     </request>
638
639     <request name="select_palm_cover" since="2">
640       <arg name="surface" type="object" interface="wl_surface"/>
641     </request>
642
643     <request name="deselect_palm_cover" since="2">
644       <arg name="surface" type="object" interface="wl_surface"/>
645     </request>
646
647     <event name="palm_cover_notify" since="2">
648       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
649       <arg name="error" type="uint"/>
650     </event>
651
652     <event name="palm_cover" since="2">
653       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
654       <arg name="mode" type="uint" enum="mode"/>
655       <arg name="duration" type="uint"/>
656       <arg name="cx" type="int" summary="x coordinate of center touch point"/>
657       <arg name="cy" type="int" summary="y coordinate of center touch point"/>
658       <arg name="size" type="uint"/>
659       <arg name="pressure" type="fixed"/>
660     </event>
661
662     <request name="activate_set" since="2">
663       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
664       <arg name="type" type="uint" enum="type"/>
665       <arg name="active" type="uint"/>
666     </request>
667
668     <event name="activate_notify" since="2">
669       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
670       <arg name="type" type="uint" enum="type"/>
671       <arg name="active" type="uint"/>
672       <arg name="error" type="uint"/>
673     </event>
674
675     <request name="destroy" type="destructor" since="2">
676       <description summary="destroy the tizen_gesture">
677         Destroy the tizen_gesture.
678       </description>
679     </request>
680
681   </interface>
682
683   <interface name="tizen_keyrouter" version="2">
684     <description summary="an interface to set each focus for each key">
685       In tradition, all the keys in a keyboard and a device on which
686       some keys are attached will be sent to focus surface by default.
687       Currently it's possible to set up each focus for each key in a keyboard and a device.
688       Therefore, by setting a key grab for a surface, the owner of the
689       surface will get the key event when it has the key grab for the key.
690     </description>
691
692     <enum name="error">
693       <entry name="none" value="0" summary="no error"/>
694       <entry name="invalid_surface" value="1" summary="Given surface is invalid."/>
695       <entry name="invalid_key" value="2" summary="Given key is invalid."/>
696       <entry name="invalid_mode" value="3" summary="Given mode is invalid."/>
697       <entry name="grabbed_already" value="4" summary="The key has been grabbed already."/>
698       <entry name="no_permission" value="5" summary="The wl client has no permission to grab the key."/>
699       <entry name="no_system_resources" value="6" summary="System resources are insufficient."/>
700       <entry name="invalid_array" value="7" summary="Given array has invalid pairs or data type."/>
701     </enum>
702
703     <enum name="mode">
704       <description summary="mode for a key grab">
705         This value is used to set a mode for a key grab. With this mode and
706         the order of the surface between surfaces' stack, the compositor will determine the destination client
707         surface.
708       </description>
709       <entry name="none" value="0" summary="none"/>
710       <entry name="shared" value="1"
711        summary="mode to get a key grab with the other client surfaces when the focused client surface gets the key"/>
712       <entry name="topmost" value="2"
713        summary="mode to get a key grab when the client surface is the top most surface"/>
714       <entry name="overridable_exclusive" value="3"
715        summary="mode to get a key grab exclusively, overridably regardless of the order in the surface stack"/>
716       <entry name="exclusive" value="4"
717        summary="mode to get a key grab exclusively regardless of the order in surface stack"/>
718       <entry name="registered" value="5"
719        summary="mode to get a key grab only when a requesting surface is on top among the registering surfaces for the key"/>
720     </enum>
721
722     <enum name="config_mode">
723       <description summary="mode for setting specific property for Key delivery">
724         This value is used to set a mode for a window. With this mode and
725         the order of the surface between surfaces' stack, the compositor will determine the destination client
726         surface.
727       </description>
728       <entry name="none" value="0" summary="none"/>
729       <entry name="invisible_set" value="1"
730        summary="mode to set window to enable send event to invisible window below in stack"/>
731       <entry name="invisible_get" value="2"
732        summary="mode to set window to get event to invisible state if any top window has set register_set"/>
733       <entry name="num_key_focus" value="3"
734           summary="mode to register for num keys for focus window"/>
735       <entry name="picture_off" value="4"
736           summary="mode to set picture off for particular key"/>
737     </enum>
738
739     <request name="set_keygrab">
740       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
741       <arg name="key" type="uint"/>
742       <arg name="mode" type="uint"/>
743     </request>
744
745     <request name="unset_keygrab">
746       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
747       <arg name="key" type="uint"/>
748     </request>
749
750     <request name="get_keygrab_status">
751       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
752       <arg name="key" type="uint"/>
753     </request>
754
755     <request name="set_keygrab_list">
756       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
757       <arg name="grab_list" type="array" summary="array of two integer variables pairs each pairs consist of keycode and keygrab mode"/>
758     </request>
759
760     <request name="unset_keygrab_list">
761       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
762       <arg name="ungrab_list" type="array" summary="array of integer variables meaning keycode wanted to ungrab"/>
763     </request>
764
765     <request name="get_keygrab_list">
766       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
767     </request>
768
769     <request name="set_register_none_key">
770       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
771       <arg name="data" type="uint"/>
772     </request>
773
774     <request name="get_keyregister_status">
775       <arg name="data" type="uint"/>
776     </request>
777
778     <request name="set_input_config">
779       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
780       <arg name="config_mode" type="uint"/>
781       <arg name="value" type="uint"/>
782     </request>
783
784     <event name="keygrab_notify">
785       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
786       <arg name="key" type="uint"/>
787       <arg name="mode" type="uint"/>
788       <arg name="error" type="uint"/>
789     </event>
790
791     <event name="keygrab_notify_list">
792       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
793       <arg name="grab_result" type="array" summary="array of three integer variables pairs each pairs consist of keycode, keygrab mode and keygrab result"/>
794     </event>
795
796     <event name="getgrab_notify_list">
797       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
798       <arg name="grab_result" type="array" summary="array of two integer variables pairs each pairs consist of keycode, keygrab mode"/>
799     </event>
800
801     <event name="set_register_none_key_notify">
802       <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
803       <arg name="mode" type="uint"/>
804     </event>
805
806     <event name="keyregister_notify">
807       <arg name="status" type="uint"/>
808     </event>
809
810     <event name="set_input_config_notify">
811       <arg name="status" type="uint"/>
812     </event>
813
814     <event name="key_cancel">
815       <arg name="key" type="uint"/>
816     </event>
817
818     <request name="destroy" type="destructor">
819       <description summary="destroy the tizen_keyrouter">
820         Destroy the tizen_keyrouter.
821       </description>
822     </request>
823     <event name="event_surface" since="2">
824       <arg name="surface" type="object" interface="wl_surface"/>
825       <arg name="key" type="uint"/>
826       <arg name="mode" type="uint"/>
827     </event>
828   </interface>
829
830   <interface name="tizen_screenshooter" version="3">
831     <description summary="interface for tizen-screenshooter">
832       Clients can get a screenmirror object from this interface.
833     </description>
834
835     <request name="get_screenmirror">
836       <description summary="create a screenmirror object">
837         Before using screenmirror, a client should get a screenmirror object from display
838         server.
839       </description>
840       <arg name="id" type="new_id" interface="tizen_screenmirror" summary="new screenmirror object"/>
841       <arg name="output" type="object" interface="wl_output" summary="output object for screenmirror"/>
842     </request>
843
844     <request name="set_oneshot_auto_rotation">
845       <description summary="set screen shot auto rotation value">
846         Client can set auto rotation value for one shot.
847       </description>
848       <arg name="set" type="uint"/>
849     </request>
850
851     <event name="format">
852       <description summary="supported format for screenshooter">
853         The tbm format codes match the #defines in tbm_surface.h. The formats actually
854         supported by the compositor will be reported by the format event.
855       </description>
856       <arg name="format" type="uint"/>
857     </event>
858
859     <event name="screenshooter_notify">
860       <description summary="send notification of screenshooter">
861         Clients can get notification of screenshooter.
862       </description>
863       <arg name="noti" type="uint"/>
864     </event>
865
866     <request name="destroy" type="destructor">
867       <description summary="destroy the tizen_screenshooter">
868         Destroy the tizen_screenshooter.
869       </description>
870     </request>
871
872     <request name="shoot" since="3">
873       <arg name="output" type="object" interface="wl_output"/>
874       <arg name="buffer" type="object" interface="wl_buffer"/>
875     </request>
876
877     <event name="done" since="3">
878     </event>
879
880   </interface>
881
882   <interface name="tizen_screenmirror" version="3">
883     <description summary="interface for screenmirror">
884       A client can use this interface to get stream images of screen. Before starting,
885       queue all buffers. Then, start a screenmirror. After starting, a dequeued event
886       will occur when drawing a captured image on a buffer is finished. You might
887       need to queue the dequeued buffer again to get a new image from display server.
888     </description>
889
890     <request name="destroy" type="destructor"/>
891
892     <request name="set_stretch">
893       <arg name="stretch" type="uint" summary="stretch type for screenmirror"/>
894     </request>
895
896     <request name="queue">
897       <description summary="queue a buffer"/>
898         <arg name="buffer" type="object" interface="wl_buffer" summary="buffer object for screenmirror"/>
899     </request>
900
901     <request name="dequeue">
902       <description summary="dequeue a buffer">
903         A user can dequeue a buffer from display server when he wants to take back it from server.
904       </description>
905       <arg name="buffer" type="object" interface="wl_buffer" summary="buffer object for screenmirror"/>
906     </request>
907
908     <request name="start"/>
909     <request name="stop"/>
910
911     <enum name="content">
912       <entry name="normal" value="0"/>
913       <entry name="video" value="1"/>
914     </enum>
915
916     <enum name="stretch">
917       <entry name="keep_ratio" value="0"/>
918       <entry name="fully" value="1"/>
919     </enum>
920
921     <event name="dequeued">
922       <description summary="dequeued event">
923         occurs when drawing a captured image on a buffer is finished
924       </description>
925       <arg name="buffer" type="object" interface="wl_buffer" summary="dequeued buffer which contains a captured image"/>
926     </event>
927
928     <event name="content">
929       <description summary="content changed event">
930         occurs when the content of a captured image is changed. (normal or video)
931       </description>
932       <arg name="content" type="uint"/>
933     </event>
934
935     <event name="stop">
936       <description summary="stop event">
937         occurs when the screenmirror is stopped eventually
938       </description>
939     </event>
940
941     <!-- version 2 additions -->
942     <request name="set_auto_rotation" since="2">
943       <description summary="set screenmirror auto rotation value">
944          Client can set auto rotation value for screenmirror.
945       </description>
946       <arg name="set" type="uint"/>
947     </request>
948   </interface>
949
950   <interface name="tizen_video" version="1">
951
952     <description summary="interface for tizen-video">
953       Clients can get the video information that the compositor can handle from this interface.
954     </description>
955
956     <enum name="error">
957       <entry name="none" value="0"/>
958       <entry name="object_exists" value="1"/>
959       <entry name="viewport_exists" value="2"/>
960     </enum>
961
962     <event name="format">
963       <description summary="supported format for video">
964         The tbm format codes match the #defines in tbm_surface.h. The formats actually
965         supported by the compositor will be reported by the format event.
966       </description>
967       <arg name="format" type="uint"/>
968     </event>
969
970     <request name="get_object">
971       <arg name="id" type="new_id" interface="tizen_video_object" />
972       <arg name="surface" type="object" interface="wl_surface" />
973     </request>
974
975     <request name="get_viewport">
976       <arg name="id" type="new_id" interface="tizen_viewport" />
977       <arg name="surface" type="object" interface="wl_surface" />
978     </request>
979
980     <request name="destroy" type="destructor">
981       <description summary="destroy the tizen_video">
982         Destroy the tizen_video.
983       </description>
984     </request>
985
986   </interface>
987
988   <interface name="tizen_video_object" version="1">
989
990     <event name="attribute">
991       <arg name="name" type="string"/>
992       <arg name="value" type="uint"/>
993     </event>
994
995     <event name="size">
996       <arg name="min_w" type="int"/>
997       <arg name="min_h" type="int"/>
998       <arg name="max_w" type="int"/>
999       <arg name="max_h" type="int"/>
1000       <arg name="prefer_align" type="int"/>
1001     </event>
1002
1003     <request name="destroy" type="destructor"/>
1004     <request name="set_attribute">
1005       <arg name="name" type="string"/>
1006       <arg name="value" type="int"/>
1007     </request>
1008
1009     <request name="follow_topmost_visibility">
1010       <description summary="follow mute control change of a topmost surface">
1011         If tizen_video_object.follow_topmost_visibility is applied to a video_object,
1012         It will be video mute control based on topmost visibility.
1013       </description>
1014     </request>
1015
1016     <request name="unfollow_topmost_visibility">
1017       <description summary="unfollow mute control change of a topmost surface">
1018         If tizen_video_object.unfollow_topmost_visibility is applied to a video_object,
1019         It will not be video mute control based on topmost visibility.
1020       </description>
1021     </request>
1022
1023     <request name="allowed_attribute">
1024       <description summary="allowed_attribute">
1025         If tizen_video_object.allowed_attribute is applied to a video_object,
1026         set_attribute request will be deliever to tdm backend directly.
1027       </description>
1028     </request>
1029
1030     <request name="disallowed_attribute">
1031       <description summary="disallowed_attribute">
1032         If tizen_video_object.disallowed_attribute is applied to a video_object,
1033         It would be tdm_attribute call when topmost showing.
1034       </description>
1035     </request>
1036
1037   </interface>
1038
1039   <interface name="tizen_subsurface_watcher" version="1">
1040
1041     <enum name="msg">
1042       <entry name="success" value="0"/>
1043       <entry name="parent_id_invalid" value="1"/>
1044       <entry name="parent_id_destroyed" value="2"/>
1045     </enum>
1046
1047     <event name="message">
1048       <arg name="value" type="uint"/>
1049     </event>
1050
1051     <request name="destroy" type="destructor">
1052       <description summary="destroy the tizen_subsurface_watcher">
1053         Destroy the tizen_subsurface_watcher.
1054       </description>
1055     </request>
1056
1057   </interface>
1058
1059   <interface name="tizen_viewport" version="1">
1060
1061       <description summary="the viewport for a surface">
1062     This is the alternative and convenient solution of wl_viewport to present
1063     a surface on screen.
1064
1065     The below five functions can be replaced with this interface. The below
1066     functions will be ignored after applying this interface to a surface.
1067      - wl_surface.set_buffer_transform
1068      - wl_surface.set_buffer_scale
1069      - wl_subsurface.set_position
1070      - wl_viewport.set_source
1071      - wl_viewport.set_destination
1072
1073     wl_viewport.set_source is very complicated especially when the buffer of
1074     wl_surface is transformed by wl_surface.set_buffer_transform. And when the
1075     parent is resized, if we want to change the geometry of a subsurface also,
1076     wl_subsurface.set_position and wl_viewport.set_destination should be called
1077     everytime the parent is resized in client side. This makes difficult to
1078     synchronize a parent surface and a subsurface on screen.
1079
1080     tizen_viewport allows clients to set the relative geometry to a subsurface
1081     in a parent surface. Whenever a parent surface is resized, the geometry of
1082     a subsurface will be calculated, moved and resized automatically by a
1083     compositor. The tizen_viewport is specified in the coordinates of a
1084     subsurface's parent.
1085
1086         If tizen_viewport is applied to a shell surface(toplevel), the all value related
1087         with x, y pos of tizen_viewport and tizen_destination_mode interface will be ignored.
1088
1089     The below 3 functions don't consider the transform of a parent's surface.
1090      - tizen_viewport.set_source
1091      - tizen_viewport.set_destination
1092      - tizen_viewport.set_destination_ratio
1093
1094     Furthermore, tizen_destination_mode.follow_parent_transform is called,
1095     tizen_viewport will consider the transform of a parent surface when applying
1096     the destination mode to a subsurface. If tizen_destination_mode.follow_parent_transform
1097     is applied to a shell surface, it will be ignored.
1098
1099     The destination will be cropped by a parent surface.
1100
1101     The change will be applied when wl_surface.commit is called.
1102       </description>
1103
1104     <event name="destination_changed">
1105       <arg name="transform" type="uint"/>
1106       <arg name="x" type="int"/>
1107       <arg name="y" type="int"/>
1108       <arg name="width" type="uint"/>
1109       <arg name="height" type="uint"/>
1110     </event>
1111
1112     <request name="destroy" type="destructor" />
1113
1114     <request name="set_transform">
1115       <description summary="set the transform of a surface">
1116     The accepted values for the transform parameter are the values for wl_output.transform
1117     according to the output transform.
1118
1119     The tizen_viewport.set_transform is applied only to itself. Basically it
1120     doesn't effect the transform of its subsurfaces. That is, if 90 transform is
1121     setted and its subsurface still has 0 transform, its subsurface won't be
1122     rotated.
1123
1124     If needed to rotate the subsurface depended on a parent surface,
1125     tizen_destination_mode.follow_parent_transform will make it possible.
1126
1127       </description>
1128       <arg name="transform" type="uint"/>
1129     </request>
1130
1131     <request name="set_source">
1132       <description summary="set the source rectalge of a wl_buffer">
1133     The source rectangle won't be changed when a parent is resized. If it needs
1134     to be changed, tizen_viewport.set_source should be called with new values.
1135       </description>
1136       <arg name="x" type="uint"/>
1137       <arg name="y" type="uint"/>
1138       <arg name="width" type="uint"/>
1139       <arg name="height" type="uint"/>
1140     </request>
1141
1142     <request name="set_destination">
1143       <description summary="set the destination geometry of a surface">
1144     The destination geometry won't be changed when a parent is resized. If it
1145     needs to be changed, tizen_viewport.set_destination should be called with
1146     new values.
1147
1148         If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
1149         tizen_viewport.set_destination will be ignored.
1150       </description>
1151       <arg name="x" type="int"/>
1152       <arg name="y" type="int"/>
1153       <arg name="width" type="uint"/>
1154       <arg name="height" type="uint"/>
1155     </request>
1156
1157     <request name="set_destination_ratio">
1158       <description summary="set the ratio destination rectalge in a parent surface">
1159     The destination rectangle of a subsurface will be automatically changed
1160     when a parent is resized. This allows the real number between 0.0 and 1.0.
1161     See wl_fixed_from_double and wl_fixed_to_double.
1162
1163         If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
1164         tizen_viewport.set_destination_ratio will be ignored.
1165       </description>
1166       <arg name="x" type="fixed"/>
1167       <arg name="y" type="fixed"/>
1168       <arg name="width" type="fixed"/>
1169       <arg name="height" type="fixed"/>
1170     </request>
1171
1172     <request name="get_destination_mode">
1173       <arg name="id" type="new_id" interface="tizen_destination_mode" />
1174     </request>
1175
1176     <request name="query_parent_size" since="1">
1177       <description summary="set the ratio destination rectalge in a parent surface">
1178     A client can asks the display server to send the size of tizen_viewport object's
1179     parent surface. Once a client requests it, the "parent_size" event will be sent
1180     whenever the parent surface's size is changed.
1181       </description>
1182     </request>
1183
1184     <event name="parent_size">
1185       <arg name="width" type="uint" />
1186       <arg name="height" type="uint" />
1187     </event>
1188
1189     <request name="follow_parent_transform">
1190       <description summary="follow the transform change of a parent surface">
1191     The real transform of a subsurface is (parent's transform + subsurface's transform).
1192     The subsurface will be rotated automatically when the parent is rotated.
1193
1194     If tizen_viewport.follow_parent_transform is applied to a shell surface(toplevel),
1195     it will be ignored.
1196       </description>
1197     </request>
1198
1199     <request name="unfollow_parent_transform" />
1200
1201   </interface>
1202
1203   <interface name="tizen_destination_mode" version="1">
1204
1205       <description summary="the destination mode for a surface">
1206     The destination rectangle will be automatically changed when a parent is
1207     resized. When tizen_destination_mode.set is called, the value of
1208     tizen_viewport.set_destination and tizen_viewport.set_destination_ratio
1209     will be ignored.
1210
1211     The destination of a surface is decided by the mode, ratio, scale, offset
1212     and align values. The ratio, scale, offset and align will be applied
1213     sequentially.
1214
1215     The change will be applied when wl_surface.commit is called.
1216       </description>
1217
1218     <enum name="error">
1219       <entry name="invalid_type" value="0"/>
1220     </enum>
1221
1222     <enum name="type">
1223       <entry name="none" value="0"/>
1224       <entry name="letter_box" value="1"/>
1225       <entry name="origin" value="2"/>
1226       <entry name="full" value="3"/>
1227       <entry name="cropped_full" value="4"/>
1228       <entry name="origin_or_letter" value="5"/>
1229     </enum>
1230
1231     <request name="destroy" type="destructor" />
1232
1233     <request name="follow_parent_transform">
1234       <description summary="follow the transform change of a parent surface">
1235     The real transform of a subsurface is (parent's transform + subsurface's transform).
1236     That is, the subsurface will be rotated automatically when the parent is rotated.
1237
1238     If tizen_destination_mode.follow_parent_transform is applied to a shell surface(toplevel),
1239     it will be ignored.
1240       </description>
1241     </request>
1242
1243     <request name="unfollow_parent_transform" />
1244
1245     <request name="set" summary="set the destination mode">
1246       <arg name="mode" type="uint" enum="type"/>
1247     </request>
1248
1249     <request name="set_ratio">
1250       <description summary="set the ratio of the destination rectangle of a subsurface">
1251     This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
1252       </description>
1253       <arg name="horizontal" type="fixed"/>
1254       <arg name="vertical" type="fixed"/>
1255     </request>
1256
1257     <request name="set_scale">
1258       <description summary="set the scale of the destination rectangle of a subsurface">
1259     This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
1260       </description>
1261       <arg name="horizontal" type="fixed"/>
1262       <arg name="vertical" type="fixed"/>
1263     </request>
1264
1265     <request name="set_align">
1266       <description summary="set the align of the destination rectangle of a subsurface">
1267     This allows the real number between 0.0 and 1.0. See wl_fixed_from_double and
1268     wl_fixed_to_double.
1269       </description>
1270       <arg name="horizontal" type="fixed"/>
1271       <arg name="vertical" type="fixed"/>
1272     </request>
1273
1274     <request name="set_offset">
1275       <arg name="x" type="int"/>
1276       <arg name="y" type="int"/>
1277       <arg name="w" type="int"/>
1278       <arg name="h" type="int"/>
1279     </request>
1280
1281   </interface>
1282
1283   <interface name="tizen_embedded_compositor" version="1">
1284
1285     <description summary="global embedded compositor object">
1286       The global obejct. Wayland has 3 type of compositor, embedded compositor is one of them.
1287       But tizen application is sendboxing by smack, then a application not allow commutication to other application by socket.
1288       So system or session compositor create socket and send to embedded compostior.
1289     </description>
1290
1291     <request name="get_socket">
1292       <description summary="create new socket">
1293         The get_socket request ask the server to create socket and emit socket event.
1294       </description>
1295     </request>
1296
1297     <event name="socket">
1298       <description summary="socket fd">
1299         Sent immediately after get_socket request
1300       </description>
1301       <arg name="sock_fd" type="fd"/>
1302     </event>
1303
1304     <request name="destroy" type="destructor"/>
1305   </interface>
1306
1307   <interface name="tizen_input_device_manager" version="4">
1308     <description summary="global input device manager object">
1309       Tizen input device manager is a global interface. This object has device add/remove events
1310       to provide tizen input device object to a client. This allows for a client to get the con
1311
1312       Be sure to bind this interface after binding wl_seat interface.
1313       Tizen input device manager interface will only provide device add/remove event for devices
1314       which belongs to the wl_seat object(s) bound by the client. Therefore, the compositor needs to
1315       create/send the device add/remove event only for the current client's seat(s).
1316     </description>
1317
1318     <event name="device_add">
1319       <description summary="device addition event">
1320         The device add/remove notification is going to be sent when a physical/logical device is
1321         added/removed to/from the given seat. Note that a tizen input device object can be assigned to
1322         a wl_seat and can also be assigned to the other wl_seat at any time. Whenever a relationship between
1323         a tizen input device object changes, device remove event from the current wl_seat object will be made
1324         and device add event to the other wl_seat object will also be mode.
1325       </description>
1326       <arg name="serial" type="uint"/>
1327       <arg name="identifier" type="string"/>
1328       <arg name="device" type="new_id" interface="tizen_input_device"/>
1329       <arg name="seat" type="object" interface="wl_seat"/>
1330     </event>
1331
1332     <event name="device_remove">
1333       <description summary="device removal event">
1334         The device add/remove notification is going to be sent when a physical/logical device is
1335         added/removed to/from the given seat. Note that a tizen input device object can be assigned to
1336         a wl_seat and can also be assigned to the other wl_seat at any time. Whenever a relationship between
1337         a tizen input device object changes, device remove event from the current wl_seat object will be made
1338         and device add event to the other wl_seat object will also be mode.
1339       </description>
1340       <arg name="serial" type="uint"/>
1341       <arg name="identifier" type="string"/>
1342       <arg name="device" type="object" interface="tizen_input_device"/>
1343       <arg name="seat" type="object" interface="wl_seat"/>
1344     </event>
1345
1346     <enum name="clas">
1347        <description summary="device class">
1348        </description>
1349        <entry name="none" value="0" summary="none of class"/>
1350        <entry name="mouse" value="1" summary="mouse class"/>
1351        <entry name="keyboard" value="2" summary="keyboard class"/>
1352        <entry name="touchscreen" value="4" summary="touchscreen class"/>
1353     </enum>
1354
1355     <enum name="error">
1356       <entry name="none" value="0" summary="no error"/>
1357       <entry name="no_permission" value="1" summary="no permission"/>
1358       <entry name="invalid_class" value="2" summary="invalid class"/>
1359       <entry name="blocked_already" value="3" summary="blocked already by the other client"/>
1360       <entry name="no_system_resources" value="4" summary="no system resources such as memory lack"/>
1361       <entry name="invalid_parameter" value="5" summary="argument is invalid"/>
1362       <entry name="invalid_surface" value="6" summary="the given surface is not visible or pointer is not on the given surface"/>
1363       <entry name="no_pointer_available" value="7" summary="there is no pointer available to warp"/>
1364       <entry name="not_allowed" value="8" summary="this request is not allowed in this system"/>
1365     </enum>
1366
1367     <event name="error">
1368       <description summary="error event">
1369       </description>
1370       <arg name="errorcode" type="uint" enum="error"/>
1371     </event>
1372
1373     <event name="block_expired">
1374       <description summary="block expiration event">
1375         This event will be sent if the duration of existing block is expired.
1376         Note that no block expired event will be sent if there is no block for the client.
1377       </description>
1378     </event>
1379
1380     <request name="block_events">
1381       <description summary="request to block sending event(s)">
1382         This request allows a client to request to block one or more events for its purpose.
1383         By specifying class as an argument in the request, the events belongs to the class will be blocked
1384         during the given duration. Note that an error event will be sent if there is any error.
1385       </description>
1386       <arg name="serial" type="uint" summary=""/>
1387       <arg name="clas" type="uint" enum="clas"/>
1388       <arg name="duration" type="uint" summary="time duration with millisecond granularity"/>
1389     </request>
1390
1391     <request name="unblock_events">
1392       <description summary="request to unblock sending event(s)">
1393         This request allows a client to request to release the existing block for the client.
1394         Note that no error event will be sent if there is no existing block for the client.
1395       </description>
1396       <arg name="serial" type="uint" summary=""/>
1397     </request>
1398
1399     <request name="init_generator">
1400       <description summary="initialize input generator system">
1401       </description>
1402       <arg name="clas" type="uint" enum="clas"/>
1403     </request>
1404
1405     <request name="deinit_generator">
1406       <description summary="deinitialize input generator system">
1407       </description>
1408       <arg name="clas" type="uint" enum="clas"/>
1409     </request>
1410
1411     <request name="generate_key">
1412       <description summary="generate a key event using specific or default device">
1413       </description>
1414       <arg name="keyname" type="string"/>
1415       <arg name="pressed" type="uint"/>
1416     </request>
1417
1418     <enum name="pointer_event_type">
1419       <entry name="begin" value="0"/>
1420       <entry name="update" value="1"/>
1421       <entry name="end" value="2"/>
1422     </enum>
1423
1424     <request name="generate_pointer">
1425       <description summary="generate a pointer event using specific or default device">
1426       </description>
1427       <arg name="type" type="uint" enum="pointer_event_type"/>
1428       <arg name="x" type="uint"/>
1429       <arg name="y" type="uint"/>
1430       <arg name="button" type="uint"/>
1431     </request>
1432
1433     <request name="generate_touch">
1434       <description summary="generate a touch event using specific or default device">
1435       </description>
1436       <arg name="type" type="uint" enum="pointer_event_type"/>
1437       <arg name="x" type="uint"/>
1438       <arg name="y" type="uint"/>
1439       <arg name="finger" type="uint"/>
1440     </request>
1441
1442     <request name="pointer_warp">
1443       <description summary="warp pointer to the relative position to the given surface">
1444       </description>
1445       <arg name="surface" type="object" interface="wl_surface"/>
1446       <arg name="x" type="fixed"/>
1447       <arg name="y" type="fixed"/>
1448     </request>
1449
1450     <!-- version 2 additions -->
1451     <request name="init_generator_with_name" since="2">
1452       <description summary="initialize input generator system with name">
1453       </description>
1454       <arg name="clas" type="uint" enum="clas"/>
1455       <arg name="name" type="string" />
1456     </request>
1457
1458     <request name="destroy" type="destructor" since="2">
1459       <description summary="destroy the tizen_input_device_manager">
1460         Destroy the tizen_input_device_manager.
1461       </description>
1462     </request>
1463
1464     <!-- version 3 additions -->
1465     <enum name="axis_type" since="3">
1466       <entry name="none" value="0" summary="no axis type"/>
1467       <entry name="wheel" value="1" summary="pointer vertical wheel axis"/>
1468       <entry name="hwheel" value="2" summary="pointer horizental wheel axis"/>
1469       <entry name="radius_x" value="3" summary="touch radius of x axis of an event area e.g. touching area with a finger or a pen"/>
1470       <entry name="radius_y" value="4" summary="touch radius of y axis of an event area e.g. touching area with a finger or a pen"/>
1471       <entry name="pressure" value="5" summary="touch pressure in an event area e.g. touching area with a finger or a pen"/>
1472       <entry name="angle" value="6" summary="touch angle in an event area e.g. touching area with a finger or a pen"/>
1473       <entry name="palm" value="7" summary="touch palm in an event area e.g. touching area with a finger or a pen"/>
1474     </enum>
1475
1476     <request name="generate_axis" since="3">
1477       <description summary="generate a pointer/touch axes event using specific or default device">
1478         When the server got this request, the server choices generate a event directly or just save values.
1479         Pointer axes (such as wheel/hwheel) are delivered to clients independantly about pointer events,
1480         but touch axes are delivered to normal touch events(begin/update/end).
1481         So the server just save touch axes before generate touch request is came and send a touch event
1482         include saved touch axes value.
1483       </description>
1484       <arg name="type" type="uint" enum="axis_type"/>
1485       <arg name="value" type="fixed" summary="axis value"/>
1486     </request>
1487
1488     <!-- version 4 additions -->
1489     <event name="max_touch_count" since="4">
1490       <description summary="notify max slot of touch device is updated">
1491         Each touch devices has their own touch counts can be supported.
1492         So a server controls maximum touches in this system to maintain resources efficiently.
1493         Sometimes a server controls maximum touches using a predefined configuration option.
1494         Sometimes a server ensures maximum touches to be supported by touch device.
1495         If a server do not use configuration option, maximum touches can be updated when new touch devices are connected.
1496         So this events can be sent to client, when a first touch device is added or maximum touches is changed.
1497       </description>
1498       <arg name="serial" type="uint"/>
1499       <arg name="max_count" type="int"/>
1500       <arg name="seat" type="object" interface="wl_seat"/>
1501     </event>
1502
1503     <request name="set_touch_count" since="4">
1504       <description summary="set a max slot of touch">
1505         This request only changes system's touch count.
1506         So this request doesn't change already connected touch devices's max count.
1507         This will influence to user created device using input generator.
1508         Input generator creates touch device only supports default touch count.
1509         But if user set touch count before create a Input generator device,
1510         user can create touch device has touch count user wanted.
1511         But some systems has their own maximum touch count.
1512         In that case this request returns error not_allowed.
1513       </description>
1514       <arg name="max_count" type="int"/>
1515     </request>
1516   </interface>
1517
1518   <interface name="tizen_input_device" version="1">
1519     <description summary="tizen input device object">
1520       The tizen_input_device interface represents one or more input devices associated with a physical/logical
1521       input device. This interface provides device specific information/events to allows for client to identify
1522       the source device of an event or to get the additional axes/attributes of a device.
1523       Note that a tizen_input_device object can be used for a physical input device and can also be used for a
1524       group of input devices. e.g. a group of mouse devices
1525     </description>
1526
1527     <enum name="clas">
1528        <description summary="device class">
1529        </description>
1530        <entry name="none" value="0" summary="none of class"/>
1531        <entry name="keyboard" value="2" summary="keyboard class"/>
1532        <entry name="mouse" value="3" summary="mouse class"/>
1533        <entry name="touchscreen" value="4" summary="touchscreen class"/>
1534     </enum>
1535
1536     <enum name="subclas">
1537        <description summary="device subclass">
1538        </description>
1539        <entry name="none" value="0" summary="none of subclass"/>
1540     </enum>
1541
1542     <enum name="axis_type">
1543       <description summary="axis type enums which can be supported by a device">
1544       </description>
1545       <entry name="none" value="0" summary="radius of x axis of an event area e.g. touching area with a finger or a pen"/>
1546       <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"/>
1547       <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"/>
1548       <entry name="pressure" value="3" summary="pressure in an event area e.g. touching area with a finger or a pen"/>
1549       <entry name="angle" value="4" summary="angle in an event area e.g. touching area with a finger or a pen"/>
1550       <entry name="detent" value="5" summary="detent value e.g. moved distance with a rotary device"/>
1551     </enum>
1552
1553     <event name="device_info">
1554       <description summary="event contains device information">
1555       </description>
1556       <arg name="name" type="string"/>
1557       <arg name="clas" type="uint" enum="clas"/>
1558       <arg name="subclas" type="uint" enum="subclas"/>
1559       <arg name="axes" type="array" summary="array of axis enum"/>
1560     </event>
1561
1562     <event name="event_device">
1563       <description summary="event indicates the source device associated with a wl_pointer/keyboard/touch event">
1564       </description>
1565       <arg name="serial" type="uint"/>
1566       <arg name="name" type="string"/>
1567       <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
1568     </event>
1569
1570     <request name="select_axes">
1571       <description summary="request for selecting some of axes among the axes supported by a tizen_input_device object">
1572       </description>
1573       <arg name="axes" type="array" summary="array of axis num"/>
1574     </request>
1575
1576     <event name="axis">
1577       <description summary="axis change event">
1578       </description>
1579       <arg name="axis_type" type="uint" enum="axis_type"/>
1580       <arg name="value" type="fixed" summary="axis value"/>
1581     </event>
1582
1583     <request name="release" type="destructor">
1584       <description summary="release the tizen_input_device object">
1585       </description>
1586     </request>
1587   </interface>
1588
1589   <interface name="tizen_launchscreen" version="1">
1590     <request name="create_img">
1591       <arg name="id" type="new_id" interface="tizen_launch_image" summary="new tizen_launch_image object"/>
1592     </request>
1593
1594     <request name="destroy" type="destructor">
1595       <description summary="destroy the tizen_launchscreen">
1596         Destroy the tizen_launchscreen.
1597       </description>
1598     </request>
1599
1600   </interface>
1601
1602   <interface name="tizen_launch_image" version="1">
1603     <!-- launch img -->
1604     <enum name="file_type">
1605       <entry name="img" value="0" summary="splash image file path"/>
1606       <entry name="edj" value="1" summary="splash edj file path"/>
1607     </enum>
1608
1609     <enum name="indicator">
1610       <entry name="off" value="0" summary="splash hide indicator"/>
1611       <entry name="on" value="1" summary="splash show indicator"/>
1612     </enum>
1613
1614     <enum name="rotation">
1615       <entry name="0" value="0" summary="rotation angle 0 degree"/>
1616       <entry name="90" value="90" summary="rotation angle 90 degree"/>
1617       <entry name="180" value="180" summary="rotation angle 180 degree"/>
1618       <entry name="270" value="270" summary="rotation angle 270 degree"/>
1619     </enum>
1620
1621     <request name="destroy" type="destructor"/>
1622
1623     <request name="launch">
1624       <arg name="file" type="string"/>
1625       <arg name="file_type" type="uint" />
1626       <arg name="color_depth" type="uint" />
1627       <arg name="rotation" type="uint" />
1628       <arg name="indicator" type="uint" />
1629       <arg name="options" type="array" />
1630     </request>
1631
1632     <request name="owner">
1633       <arg name="pid" type="uint" />
1634     </request>
1635
1636     <request name="show">
1637     </request>
1638
1639     <request name="hide">
1640     </request>
1641   </interface>
1642
1643   <interface name="tizen_effect" version="1">
1644      <enum name="type">
1645       <entry name="none" value="0" summary="none"/>
1646       <entry name="show" value="1" summary="show effect of window"/>
1647       <entry name="hide" value="2" summary="hide effect of window"/>
1648       <entry name="restack" value="3" summary="restack effect of window"/>
1649      </enum>
1650      <request name="destroy" type="destructor" />
1651      <event name="start">
1652        <arg name="surface" type="object" interface="wl_surface"/>
1653        <arg name="type" type="uint" />
1654      </event>
1655      <event name="end">
1656        <arg name="surface" type="object" interface="wl_surface"/>
1657        <arg name="type" type="uint" />
1658      </event>
1659   </interface>
1660
1661   <interface name="tizen_display_policy" version="1">
1662     <enum name="error_state">
1663       <entry name="none" value="0"/>
1664       <entry name="permission_denied" value="1"/>
1665     </enum>
1666     <!-- for window brightness -->
1667     <request name="set_window_brightness">
1668       <arg name="surface" type="object" interface="wl_surface"/>
1669       <arg name="brightness" type="int"/>
1670     </request>
1671
1672     <event name="window_brightness_done">
1673       <arg name="surface" type="object" interface="wl_surface"/>
1674       <arg name="brightness" type="int"/>
1675       <arg name="error_state" type="uint"/>
1676     </event>
1677
1678     <request name="destroy" type="destructor">
1679       <description summary="destroy the tizen_display_policy">
1680         Destroy the tizen_display_policy.
1681       </description>
1682     </request>
1683
1684   </interface>
1685
1686   <interface name="tizen_indicator" version="1">
1687     <enum name="state">
1688       <entry name="unknown" value="0" summary="unknown"/>
1689       <entry name="off" value="1" summary="can not show indicator"/>
1690       <entry name="on" value="2" summary="can show indicator"/>
1691     </enum>
1692     <enum name="opacity_mode">
1693       <entry name="unknown" value="0" summary="unknown"/>
1694       <entry name="opaque" value="1" summary="opaque mode"/>
1695       <entry name="translucent" value="2" summary="translucent mode"/>
1696       <entry name="transparent" value="3" summary="transparent all mode"/>
1697       <entry name="bg_transparent" value="4" summary="transparent only background mode"/>
1698     </enum>
1699     <enum name="visible_type">
1700       <entry name="hidden" value="0" summary="hidden type indicator"/>
1701       <entry name="shown" value="1" summary="shown type indicator"/>
1702     </enum>
1703
1704     <request name="destroy" type="destructor"/>
1705     <request name="set_state">
1706       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1707       <arg name="state" type="int" />
1708     </request>
1709     <request name="set_opacity_mode">
1710       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1711       <arg name="mode" type="int" />
1712     </request>
1713     <request name="set_visible_type">
1714       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1715       <arg name="type" type="int" />
1716     </request>
1717
1718     <event name="flick">
1719       <arg name="surface" type="object" interface="wl_surface" summary="occur the flick event"/>
1720       <arg name="type" type="int"/>
1721     </event>
1722   </interface>
1723
1724   <interface name="tizen_clipboard" version="2">
1725      <description summary="an interface for requests and event about clipboard">
1726         This interface provides some requests and events about clipboard for other clients.
1727      </description>
1728      <request name="destroy" type="destructor" />
1729      <request name="show">
1730       <description summary="request for show clipboard">
1731       </description>
1732       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1733      </request>
1734      <request name="hide">
1735       <description summary="request for hide clipboard">
1736       </description>
1737       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1738      </request>
1739      <event name="data_selected">
1740       <description summary="announce data are selected by clipboard">
1741       </description>
1742       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1743      </event>
1744
1745      <!-- version 2 additions -->
1746      <request name="set_data_only" since="2">
1747         <description summary="request for setting data only mode for this wl_client">
1748            A wayland client can notify of that the client is data only mode.
1749            The data only mode means that this wayland client doesn't have any
1750            wl_surfaces at all but it wants to use wl_data_device for some data
1751            operations.
1752         </description>
1753         <arg name="set" type="uint" />
1754      </request>
1755
1756      <event name="allowed_data_only" since="2">
1757         <description summary="event to notify if data only set is allowed or not"/>
1758         <arg name="allowed" type="uint" />
1759      </event>
1760   </interface>
1761
1762   <interface name="tizen_screen_rotation" version="1">
1763     <request name="get_ignore_output_transform">
1764       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1765     </request>
1766
1767     <event name="ignore_output_transform">
1768       <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
1769       <arg name="ignore" type="uint"/>
1770     </event>
1771
1772     <request name="destroy" type="destructor">
1773       <description summary="destroy the tizen_screen_rotation">
1774         Destroy the tizen_screen_rotation.
1775       </description>
1776     </request>
1777
1778   </interface>
1779
1780   <interface name="tizen_renderer" version="1">
1781     <request name="get_renderer_surface">
1782       <arg name="id" type="new_id" interface="tizen_renderer_surface" />
1783       <arg name="surface" type="object" interface="wl_surface" />
1784     </request>
1785
1786     <request name="destroy" type="destructor">
1787       <description summary="destroy the tizen_renderer">
1788         Destroy the tizen_renderer
1789       </description>
1790     </request>
1791   </interface>
1792
1793   <interface name="tizen_renderer_surface" version="1">
1794     <event name="redraw_request">
1795     </event>
1796
1797     <request name="destroy" type="destructor">
1798       <description summary="destroy the tizen_renderer_surface">
1799         Destroy the tizen_renderer_surface
1800       </description>
1801     </request>
1802   </interface>
1803
1804 </protocol>