47e65361af1367c309d3260ecdcd42d946fff338
[platform/core/uifw/libtdm.git] / protocol / tdm.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <protocol name="wl_tdm">
4
5     <interface name="wl_tdm" version="1">
6
7         <description summary="the private protocol for TDM">
8       TDM uses the wayland protocol to communicate between tdm client and tdm server.
9         </description>
10
11         <event name="debug_message">
12             <arg name="message" type="string"/>
13         </event>
14
15         <event name="debug_done" />
16
17         <request name="debug">
18             <arg name="options" type="string" summary="debug options"/>
19         </request>
20
21         <request name="create_output">
22             <arg name="name" type="string" summary="output's name. 'primary' or 'default' can be used for default."/>
23             <arg name="id" type="new_id" interface="wl_tdm_output"/>
24         </request>
25
26         <request name="set_client_vblank_fps">
27             <arg name="pid" type="uint"/>
28             <arg name="name" type="string"/>
29             <arg name="fps" type="uint"/>
30         </request>
31
32     </interface>
33
34     <interface name="wl_tdm_output" version="1">
35         <description summary="TDM client output object">
36       When the DPMS of connection status of the output is changed, TDM server
37       will send wl_tdm_output.mode and wl_tdm_output.dpms event.
38         </description>
39
40         <event name="mode">
41             <arg name="width" type="uint"/>
42             <arg name="height" type="uint"/>
43             <arg name="refresh" type="uint"/>
44         </event>
45
46         <event name="connection">
47             <arg name="value" type="uint"/>
48         </event>
49
50         <event name="dpms">
51             <arg name="value" type="uint"/>
52         </event>
53
54         <request name="destroy" type="destructor"/>
55
56         <request name="create_vblank">
57             <arg name="id" type="new_id" interface="wl_tdm_vblank"/>
58         </request>
59
60         <request name="watch_output_changes">
61             <arg name="enable" type="uint"/>
62         </request>
63
64     </interface>
65
66     <interface name="wl_tdm_vblank" version="1">
67
68         <event name="done">
69             <arg name="req_id" type="uint" summary="wait_vblank request ID"/>
70             <arg name="sequence" type="uint" summary="the sequence number of the vblank"/>
71             <arg name="tv_sec" type="uint" summary="sec of the vblank"/>
72             <arg name="tv_usec" type="uint" summary="usec of the vblank"/>
73             <arg name="error" type="uint" summary="error status enumeration"/>
74         </event>
75
76         <event name="fps_changed" />
77
78         <request name="destroy" type="destructor"/>
79
80         <request name="set_name">
81             <arg name="name" type="string"/>
82         </request>
83
84         <request name="set_fps">
85             <arg name="fps" type="uint"/>
86         </request>
87
88         <request name="set_offset">
89             <arg name="offset" type="int"/>
90         </request>
91
92         <request name="set_enable_fake">
93             <arg name="enable_fake" type="uint"/>
94         </request>
95
96         <request name="wait_vblank">
97             <description summary="Wait for a HW vblank">
98           When wl_tdm_vblank.wait_vblank is called, TDM server will send the
99           wl_tdm_vblank.done event after interval vblanks. If enable_fake == 1,
100           TDM server will send the done event always. Otherwise, TDM server will
101           send the done event with TDM error value.
102             </description>
103
104             <arg name="interval" type="uint"/>
105             <arg name="req_id" type="uint" summary="wait_vblank request ID"/>
106             <arg name="req_sec" type="uint" summary="sec of the request time in client side"/>
107             <arg name="req_usec" type="uint" summary="usec of the request time in client side"/>
108         </request>
109
110         <request name="wait_vblank_seq">
111             <arg name="sequence" type="uint" summary="the target sequence number"/>
112             <arg name="req_id" type="uint" summary="wait_vblank request ID"/>
113             <arg name="req_sec" type="uint" summary="sec of the request time in client side"/>
114             <arg name="req_usec" type="uint" summary="usec of the request time in client side"/>
115         </request>
116
117     </interface>
118
119 </protocol>