virtual: add get_available_modes and set_mode protocol.
[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="create_voutput">
27             <arg name="name" type="string" summary=""/>
28             <arg name="id" type="new_id" interface="wl_tdm_voutput"/>
29         </request>
30
31     </interface>
32
33     <interface name="wl_tdm_output" version="1">
34         <description summary="TDM client output object">
35       When the DPMS of connection status of the output is changed, TDM server
36       will send wl_tdm_output.mode and wl_tdm_output.dpms event.
37         </description>
38
39         <event name="mode">
40             <arg name="width" type="uint"/>
41             <arg name="height" type="uint"/>
42             <arg name="refresh" type="uint"/>
43             <arg name="error" type="uint" summary="error status enumeration"/>
44         </event>
45
46         <event name="connection">
47             <arg name="value" type="uint"/>
48             <arg name="error" type="uint" summary="error status enumeration"/>
49         </event>
50
51         <event name="dpms">
52             <arg name="value" type="uint"/>
53             <arg name="error" type="uint" summary="error status enumeration"/>
54         </event>
55
56         <event name="available_modes">
57             <arg name="modes" type="array"/>
58             <arg name="error" type="uint" summary="error status enumeration"/>
59         </event>
60
61         <request name="destroy" type="destructor"/>
62
63         <request name="create_vblank">
64             <arg name="id" type="new_id" interface="wl_tdm_vblank"/>
65         </request>
66
67         <request name="watch_output_changes">
68             <arg name="enable" type="uint"/>
69         </request>
70
71         <request name="get_connection"/>
72
73         <request name="get_mode"/>
74
75         <request name="get_dpms"/>
76
77         <request name="get_available_modes"/>
78
79         <request name="set_mode">
80             <arg name="index" type="uint"/>
81         </request>
82
83     </interface>
84
85     <interface name="wl_tdm_voutput" version="1">
86         <description summary="TDM client virtual output object">
87         </description>
88
89         <request name="destroy" type="destructor"/>
90
91         <request name="set_available_modes">
92             <arg name="modes" type="array"/>
93         </request>
94
95         <request name="set_physical_size">
96             <arg name="mmwidth" type="uint" summary=""/>
97             <arg name="mmheight" type="uint" summary=""/>
98         </request>
99
100         <request name="connect"/>
101
102         <request name="disconnect"/>
103
104         <request name="commit_done"/>
105
106         <event name="buffer_set_with_id">
107             <arg name="wl_buffer" type="new_id" interface="wl_buffer"/>
108             <arg name="width" type="int"/>
109             <arg name="height" type="int"/>
110             <arg name="format" type="uint"/>
111             <arg name="bpp" type="int"/>
112             <arg name="size" type="int"/>
113             <arg name="num_plane" type="int"/>
114             <arg name="plane_buf_idx" type="array"/>
115             <arg name="plane_offset" type="array"/>
116             <arg name="plane_stride" type="array"/>
117             <arg name="plane_size" type="array"/>
118             <arg name="flags" type="uint"/>
119             <arg name="num_buf" type="int"/>
120             <arg name="buf0" type="uint"/>
121             <arg name="buf1" type="uint"/>
122             <arg name="buf2" type="uint"/>
123         </event>
124
125         <event name="buffer_set_with_fd">
126             <arg name="wl_buffer" type="new_id" interface="wl_buffer"/>
127             <arg name="width" type="int"/>
128             <arg name="height" type="int"/>
129             <arg name="format" type="uint"/>
130             <arg name="bpp" type="int"/>
131             <arg name="size" type="int"/>
132             <arg name="num_plane" type="int"/>
133             <arg name="plane_buf_idx" type="array"/>
134             <arg name="plane_offset" type="array"/>
135             <arg name="plane_stride" type="array"/>
136             <arg name="plane_size" type="array"/>
137             <arg name="flags" type="uint"/>
138             <arg name="num_buf" type="int"/>
139             <arg name="buf0" type="fd"/>
140             <arg name="buf1" type="fd"/>
141             <arg name="buf2" type="fd"/>
142         </event>
143
144         <event name="destroy_buffer">
145             <arg name="buffer" type="object" interface="wl_buffer"/>
146         </event>
147
148         <event name="attach_buffer">
149             <arg name="buffer" type="object" interface="wl_buffer"/>
150         </event>
151
152         <event name="commit"/>
153         <event name="ack_message">
154             <arg name="msg" type="uint" enum="message" summary=""/>
155         </event>
156         <enum name="message">
157             <entry name="unknown" value="0" summary=""/>
158             <entry name="added" value="1" summary=""/>
159             <entry name="permission_denied" value="2" summary=""/>
160         </enum>
161     </interface>
162
163     <interface name="wl_tdm_vblank" version="1">
164
165         <event name="stamp">
166             <arg name="stamp" type="uint"/>
167         </event>
168
169         <event name="done">
170             <arg name="req_id" type="uint" summary="wait_vblank request ID"/>
171             <arg name="sequence" type="uint" summary="the sequence number of the vblank"/>
172             <arg name="tv_sec" type="uint" summary="sec of the vblank"/>
173             <arg name="tv_usec" type="uint" summary="usec of the vblank"/>
174             <arg name="error" type="uint" summary="error status enumeration"/>
175         </event>
176
177         <event name="ttrace">
178             <arg name="enable" type="uint"/>
179         </event>
180
181         <request name="destroy" type="destructor"/>
182
183         <request name="set_name">
184             <arg name="name" type="string"/>
185         </request>
186
187         <request name="set_fps">
188             <arg name="fps" type="uint"/>
189         </request>
190
191         <request name="set_offset">
192             <arg name="offset" type="int"/>
193         </request>
194
195         <request name="set_enable_fake">
196             <arg name="enable_fake" type="uint"/>
197         </request>
198
199         <request name="wait_vblank">
200             <description summary="Wait for a HW vblank">
201           When wl_tdm_vblank.wait_vblank is called, TDM server will send the
202           wl_tdm_vblank.done event after interval vblanks. If enable_fake == 1,
203           TDM server will send the done event always. Otherwise, TDM server will
204           send the done event with TDM error value.
205             </description>
206
207             <arg name="interval" type="uint"/>
208             <arg name="req_id" type="uint" summary="wait_vblank request ID"/>
209             <arg name="req_sec" type="uint" summary="sec of the request time in client side"/>
210             <arg name="req_usec" type="uint" summary="usec of the request time in client side"/>
211         </request>
212
213         <request name="wait_vblank_seq">
214             <arg name="sequence" type="uint" summary="the target sequence number"/>
215             <arg name="req_id" type="uint" summary="wait_vblank request ID"/>
216             <arg name="req_sec" type="uint" summary="sec of the request time in client side"/>
217             <arg name="req_usec" type="uint" summary="usec of the request time in client side"/>
218         </request>
219
220     </interface>
221
222 </protocol>