0f2bd98d3750acf8e4216a65c6afd9a8516efb1d
[profile/ivi/wayland.git] / protocol.xml
1 <protocol>
2
3   <interface name="display" version="1">
4     <event name="invalid_object">
5       <arg name="object_id" type="uint"/>
6     </event>
7
8     <event name="invalid_method">
9       <arg name="object_id" type="uint"/>
10       <arg name="opcode" type="uint"/>
11     </event>
12
13     <event name="no_memory"/>
14
15     <event name="global">
16       <arg name="id" type="new_id" interface="object"/>
17       <arg name="name" type="string"/>
18       <arg name="version" type="uint"/>
19     </event>
20
21     <event name="range">
22       <arg name="base" type="uint"/>
23     </event>
24   </interface>
25
26   <interface name="compositor" version="1">
27     <request name="create_surface">
28       <arg name="id" type="new_id" interface="surface"/>
29     </request>
30
31     <request name="commit">
32       <arg name="key" type="uint"/>
33     </request>
34
35     <event name="acknowledge">
36       <arg name="key" type="uint"/>
37       <arg name="frame" type="uint"/>
38     </event>
39
40     <event name="frame">
41       <arg name="frame" type="uint"/>
42       <arg name="timestamp" type="uint"/>
43     </event>
44   </interface>
45
46   <interface name="drm" version="1">
47     <!-- dri2 auth and create buffer -->
48     <request name="authenticate">
49       <arg name="id" type="uint"/>
50     </request>
51
52     <request name="create_buffer">
53       <arg name="id" type="new_id" interface="buffer"/>
54       <arg name="name" type="uint"/>
55       <arg name="width" type="int"/>
56       <arg name="height" type="int"/>
57       <arg name="stride" type="uint"/>
58       <arg name="visual" type="object" interface="visual"/>
59     </request>
60
61     <event name="device">
62       <arg name="name" type="string"/>
63     </event>
64
65     <event name="authenticated"/>
66   </interface>
67
68   <interface name="buffer" version="1">
69     <request name="destroy" type="destructor"/>
70   </interface>
71
72   <interface name="shell" version="1">
73     <request name="move">
74       <arg name="surface" type="object" interface="surface"/>
75       <arg name="input_device" type="object" interface="input_device"/>
76       <arg name="time" type="uint"/>
77     </request>
78
79     <request name="resize">
80       <arg name="surface" type="object" interface="surface"/>
81       <arg name="input_device" type="object" interface="input_device"/>
82       <arg name="time" type="uint"/>
83       <!-- edges is an enum, need to get the values in here -->
84       <arg name="edges" type="uint"/>
85     </request>
86
87     <request name="create_drag">
88       <arg name="id" type="new_id" interface="drag"/>
89     </request>
90
91     <event name="configure">
92       <arg name="time" type="uint"/>
93       <!-- Same as edges except also move (16) -->
94       <arg name="type" type="uint"/>
95       <arg name="surface" type="object" interface="surface"/>
96       <arg name="x" type="int"/>
97       <arg name="y" type="int"/>
98       <arg name="width" type="int"/>
99       <arg name="height" type="int"/>
100     </event>
101   </interface>
102
103   <interface name="drag" version="1">
104     <!-- Add an offered mime type.  Can be called several times to
105          offer multiple types, but must be called before 'activate'. -->
106     <request name="offer">
107       <arg name="type" type="string"/>
108     </request>
109
110     <request name="activate">
111       <arg name="surface" type="object" interface="surface"/>
112       <arg name="input_device" type="object" interface="input_device"/>
113       <arg name="time" type="uint"/>
114     </request>
115
116     <!-- Destroy the drag and cancel the session. -->
117     <request name="destroy" type="destructor"/>
118
119     <!-- Sent when a target accepts pointer_focus or motion events.
120          If a target does not accept any of the offered types, type is
121          NULL -->
122     <event name="target">
123       <arg name="mime_type" type="string"/>
124     </event>
125
126     <!-- Sent when the drag is finished.  The final mime type is that
127          of the last target event.  If that was NULL, no drag target
128          was valid when the drag finished, fd is undefined and the
129          source should not send data.  The event is also sent in case
130          a drag source tries to activate a drag after the grab was
131          released, in which case mime_type will also be NULL. -->
132     <event name="finish">
133       <arg name="fd" type="fd"/>
134     </event>
135   </interface>
136
137
138   <interface name="drag_offer" version="1">
139     <!-- Call to accept the offer of the given type -->
140     <request name="accept">
141       <arg name="time" type="uint"/>
142       <arg name="type" type="string"/>
143     </request>
144
145     <!-- Called to initiate the drag finish sequence.  Sends the pipe
146          fd to the compositor, which forwards it to the source in the
147          'finish' event -->
148     <request name="receive">
149       <arg name="fd" type="fd"/>
150     </request>
151
152     <!-- Sent before the pointer_focus event to announce the types
153          offered.  One event per offered mime type. -->
154     <event name="offer">
155       <arg name="type" type="string"/>
156     </event>
157
158     <!-- Similar to device::pointer_focus.  Sent to potential target
159          surfaces to offer drag data.  If the device leaves the
160          window, the drag stops or the originator cancels the drag,
161          this event is sent with the NULL surface, at which point the
162          drag object may no longer be valid. -->
163     <event name="pointer_focus">
164       <arg name="time" type="uint"/>
165       <arg name="surface" type="object" interface="surface"/>
166       <arg name="x" type="int"/>
167       <arg name="y" type="int"/>
168       <arg name="surface_x" type="int"/>
169       <arg name="surface_y" type="int"/>
170     </event>
171
172     <!-- Similar to device::motion.  Sent to potential target surfaces
173          as the drag pointer moves around in the surface. -->
174     <event name="motion">
175       <arg name="time" type="uint"/>
176       <arg name="x" type="int"/>
177       <arg name="y" type="int"/>
178       <arg name="surface_x" type="int"/>
179       <arg name="surface_y" type="int"/>
180     </event>
181
182     <!-- Sent to indicate that the drag is finishing.  The last
183          motion/pointer_focus event gives the location of the drop.
184          Target must respond with the 'receive' request, which sends
185          an fd to the source for writing the drag data. -->
186     <event name="drop"/>
187   </interface>
188
189   <interface name="surface" version="1">
190     <request name="destroy" type="destructor"/>
191
192     <request name="attach">
193       <arg name="buffer" type="object" interface="buffer"/>
194     </request>
195
196     <request name="map">
197       <arg name="x" type="int"/>
198       <arg name="y" type="int"/>
199       <arg name="width" type="int"/>
200       <arg name="height" type="int"/>
201     </request>
202
203     <request name="damage">
204       <arg name="x" type="int"/>
205       <arg name="y" type="int"/>
206       <arg name="width" type="int"/>
207       <arg name="height" type="int"/>
208     </request>
209   </interface>
210
211   <interface name="input_device" version="1">
212     <request name="attach">
213       <arg name="buffer" type="object" interface="buffer"/>
214       <arg name="hotspot_x" type="int"/>
215       <arg name="hotspot_y" type="int"/>
216     </request>
217
218     <event name="motion">
219       <arg name="time" type="uint"/>
220       <arg name="x" type="int"/>
221       <arg name="y" type="int"/>
222       <arg name="surface_x" type="int"/>
223       <arg name="surface_y" type="int"/>
224     </event>
225
226     <event name="button">
227       <arg name="time" type="uint"/>
228       <arg name="button" type="uint"/>
229       <arg name="state" type="uint"/>
230     </event>
231
232     <event name="key">
233       <arg name="time" type="uint"/>
234       <arg name="key" type="uint"/>
235       <arg name="state" type="uint"/>
236     </event>
237
238     <event name="pointer_focus">
239       <arg name="time" type="uint"/>
240       <arg name="surface" type="object" interface="surface"/>
241       <arg name="x" type="int"/>
242       <arg name="y" type="int"/>
243       <arg name="surface_x" type="int"/>
244       <arg name="surface_y" type="int"/>
245     </event>
246
247     <event name="keyboard_focus">
248       <arg name="time" type="uint"/>
249       <arg name="surface" type="object" interface="surface"/>
250       <arg name="keys" type="array"/>
251     </event>
252   </interface>
253
254   <interface name="output" version="1">
255     <event name="geometry">
256       <arg name="width" type="int"/>
257       <arg name="height" type="int"/>
258     </event>
259   </interface>
260
261   <interface name="visual" version="1">
262
263 </protocol>