1 /* Generated by wayland-scanner 1.22.0 */
2
3 #ifndef STYLUS_UNSTABLE_V2_CLIENT_PROTOCOL_H
4 #define STYLUS_UNSTABLE_V2_CLIENT_PROTOCOL_H
5
6 #include <stdint.h>
7 #include <stddef.h>
8 #include "wayland-client.h"
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 /**
15 * @page page_stylus_unstable_v2 The stylus_unstable_v2 protocol
16 * @section page_ifaces_stylus_unstable_v2 Interfaces
17 * - @subpage page_iface_zcr_stylus_v2 - extends wl_touch and wl_pointer for styli
18 * - @subpage page_iface_zcr_touch_stylus_v2 - stylus extension for touch
19 * - @subpage page_iface_zcr_pointer_stylus_v2 - stylus extension for touch
20 * @section page_copyright_stylus_unstable_v2 Copyright
21 * <pre>
22 *
23 * Copyright 2016 The Chromium Authors
24 *
25 * Permission is hereby granted, free of charge, to any person obtaining a
26 * copy of this software and associated documentation files (the "Software"),
27 * to deal in the Software without restriction, including without limitation
28 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
29 * and/or sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following conditions:
31 *
32 * The above copyright notice and this permission notice (including the next
33 * paragraph) shall be included in all copies or substantial portions of the
34 * Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
37 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
38 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
39 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
40 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
42 * DEALINGS IN THE SOFTWARE.
43 * </pre>
44 */
45 struct wl_pointer;
46 struct wl_touch;
47 struct zcr_pointer_stylus_v2;
48 struct zcr_stylus_v2;
49 struct zcr_touch_stylus_v2;
50
51 #ifndef ZCR_STYLUS_V2_INTERFACE
52 #define ZCR_STYLUS_V2_INTERFACE
53 /**
54 * @page page_iface_zcr_stylus_v2 zcr_stylus_v2
55 * @section page_iface_zcr_stylus_v2_desc Description
56 *
57 * Allows a wl_touch or a wl_pointer to report stylus specific information.
58 * The client can use this protocol to obtain detail information about the
59 * type of stylus, as well as the force and tilt of the tool.
60 *
61 * Warning! The protocol described in this file is experimental and
62 * backward incompatible changes may be made. Backward compatible changes
63 * may be added together with the corresponding uinterface version bump.
64 * Backward incompatible changes are done by bumping the version number in
65 * the protocol and uinterface names and resetting the interface version.
66 * Once the protocol is to be declared stable, the 'z' prefix and the
67 * version number in the protocol and interface names are removed and the
68 * interface version number is reset.
69 * @section page_iface_zcr_stylus_v2_api API
70 * See @ref iface_zcr_stylus_v2.
71 */
72 /**
73 * @defgroup iface_zcr_stylus_v2 The zcr_stylus_v2 interface
74 *
75 * Allows a wl_touch or a wl_pointer to report stylus specific information.
76 * The client can use this protocol to obtain detail information about the
77 * type of stylus, as well as the force and tilt of the tool.
78 *
79 * Warning! The protocol described in this file is experimental and
80 * backward incompatible changes may be made. Backward compatible changes
81 * may be added together with the corresponding uinterface version bump.
82 * Backward incompatible changes are done by bumping the version number in
83 * the protocol and uinterface names and resetting the interface version.
84 * Once the protocol is to be declared stable, the 'z' prefix and the
85 * version number in the protocol and interface names are removed and the
86 * interface version number is reset.
87 */
88 extern const struct wl_interface zcr_stylus_v2_interface;
89 #endif
90 #ifndef ZCR_TOUCH_STYLUS_V2_INTERFACE
91 #define ZCR_TOUCH_STYLUS_V2_INTERFACE
92 /**
93 * @page page_iface_zcr_touch_stylus_v2 zcr_touch_stylus_v2
94 * @section page_iface_zcr_touch_stylus_v2_desc Description
95 *
96 * The zcr_touch_stylus_v2 interface extends the wl_touch interface with
97 * events to describe details about a stylus. A stylus that reports events
98 * through this interface is likely an on-screen stylus, where the user
99 * interacts with the stylus directly on a display.
100 *
101 * These events are to be fired by the server within the same frame as other
102 * wl_touch events.
103 * @section page_iface_zcr_touch_stylus_v2_api API
104 * See @ref iface_zcr_touch_stylus_v2.
105 */
106 /**
107 * @defgroup iface_zcr_touch_stylus_v2 The zcr_touch_stylus_v2 interface
108 *
109 * The zcr_touch_stylus_v2 interface extends the wl_touch interface with
110 * events to describe details about a stylus. A stylus that reports events
111 * through this interface is likely an on-screen stylus, where the user
112 * interacts with the stylus directly on a display.
113 *
114 * These events are to be fired by the server within the same frame as other
115 * wl_touch events.
116 */
117 extern const struct wl_interface zcr_touch_stylus_v2_interface;
118 #endif
119 #ifndef ZCR_POINTER_STYLUS_V2_INTERFACE
120 #define ZCR_POINTER_STYLUS_V2_INTERFACE
121 /**
122 * @page page_iface_zcr_pointer_stylus_v2 zcr_pointer_stylus_v2
123 * @section page_iface_zcr_pointer_stylus_v2_desc Description
124 *
125 * The zcr_pointer_stylus_v2 interface extends the wl_pointer interface with
126 * events to describe details about a stylus. A stylus that reports events
127 * through this interface also moves the mouse cursor. The type of the
128 * device reporting values through this interface is described by the
129 * tool_type. When the tool changes, the values previously reported through
130 * this interface are assumed to be reset.
131 *
132 * These events are to be fired by the server within the same frame as other
133 * wl_pointer events.
134 * @section page_iface_zcr_pointer_stylus_v2_api API
135 * See @ref iface_zcr_pointer_stylus_v2.
136 */
137 /**
138 * @defgroup iface_zcr_pointer_stylus_v2 The zcr_pointer_stylus_v2 interface
139 *
140 * The zcr_pointer_stylus_v2 interface extends the wl_pointer interface with
141 * events to describe details about a stylus. A stylus that reports events
142 * through this interface also moves the mouse cursor. The type of the
143 * device reporting values through this interface is described by the
144 * tool_type. When the tool changes, the values previously reported through
145 * this interface are assumed to be reset.
146 *
147 * These events are to be fired by the server within the same frame as other
148 * wl_pointer events.
149 */
150 extern const struct wl_interface zcr_pointer_stylus_v2_interface;
151 #endif
152
153 #ifndef ZCR_STYLUS_V2_ERROR_ENUM
154 #define ZCR_STYLUS_V2_ERROR_ENUM
155 enum zcr_stylus_v2_error {
156 /**
157 * the touch already has a touch_stylus object associated
158 */
159 ZCR_STYLUS_V2_ERROR_TOUCH_STYLUS_EXISTS = 0,
160 /**
161 * the pointer already has a pointer_stylus object associated
162 * @since 2
163 */
164 ZCR_STYLUS_V2_ERROR_POINTER_STYLUS_EXISTS = 1,
165 };
166 /**
167 * @ingroup iface_zcr_stylus_v2
168 */
169 #define ZCR_STYLUS_V2_ERROR_POINTER_STYLUS_EXISTS_SINCE_VERSION 2
170 #endif /* ZCR_STYLUS_V2_ERROR_ENUM */
171
172 #define ZCR_STYLUS_V2_GET_TOUCH_STYLUS 0
173 #define ZCR_STYLUS_V2_GET_POINTER_STYLUS 1
174
175
176 /**
177 * @ingroup iface_zcr_stylus_v2
178 */
179 #define ZCR_STYLUS_V2_GET_TOUCH_STYLUS_SINCE_VERSION 1
180 /**
181 * @ingroup iface_zcr_stylus_v2
182 */
183 #define ZCR_STYLUS_V2_GET_POINTER_STYLUS_SINCE_VERSION 2
184
185 /** @ingroup iface_zcr_stylus_v2 */
186 static inline void
zcr_stylus_v2_set_user_data(struct zcr_stylus_v2 * zcr_stylus_v2,void * user_data)187 zcr_stylus_v2_set_user_data(struct zcr_stylus_v2 *zcr_stylus_v2, void *user_data)
188 {
189 wl_proxy_set_user_data((struct wl_proxy *) zcr_stylus_v2, user_data);
190 }
191
192 /** @ingroup iface_zcr_stylus_v2 */
193 static inline void *
zcr_stylus_v2_get_user_data(struct zcr_stylus_v2 * zcr_stylus_v2)194 zcr_stylus_v2_get_user_data(struct zcr_stylus_v2 *zcr_stylus_v2)
195 {
196 return wl_proxy_get_user_data((struct wl_proxy *) zcr_stylus_v2);
197 }
198
199 static inline uint32_t
zcr_stylus_v2_get_version(struct zcr_stylus_v2 * zcr_stylus_v2)200 zcr_stylus_v2_get_version(struct zcr_stylus_v2 *zcr_stylus_v2)
201 {
202 return wl_proxy_get_version((struct wl_proxy *) zcr_stylus_v2);
203 }
204
205 /** @ingroup iface_zcr_stylus_v2 */
206 static inline void
zcr_stylus_v2_destroy(struct zcr_stylus_v2 * zcr_stylus_v2)207 zcr_stylus_v2_destroy(struct zcr_stylus_v2 *zcr_stylus_v2)
208 {
209 wl_proxy_destroy((struct wl_proxy *) zcr_stylus_v2);
210 }
211
212 /**
213 * @ingroup iface_zcr_stylus_v2
214 *
215 * Create touch_stylus object. See zcr_touch_stylus_v2 interface for
216 * details. If the given wl_touch already has a touch_stylus object
217 * associated, the touch_stylus_exists protocol error is raised.
218 */
219 static inline struct zcr_touch_stylus_v2 *
zcr_stylus_v2_get_touch_stylus(struct zcr_stylus_v2 * zcr_stylus_v2,struct wl_touch * touch)220 zcr_stylus_v2_get_touch_stylus(struct zcr_stylus_v2 *zcr_stylus_v2, struct wl_touch *touch)
221 {
222 struct wl_proxy *id;
223
224 id = wl_proxy_marshal_flags((struct wl_proxy *) zcr_stylus_v2,
225 ZCR_STYLUS_V2_GET_TOUCH_STYLUS, &zcr_touch_stylus_v2_interface, wl_proxy_get_version((struct wl_proxy *) zcr_stylus_v2), 0, NULL, touch);
226
227 return (struct zcr_touch_stylus_v2 *) id;
228 }
229
230 /**
231 * @ingroup iface_zcr_stylus_v2
232 *
233 * Create pointer_stylus object. See zcr_pointer_stylus_v2 interface for
234 * details. If the given wl_pointer already has a pointer_stylus object
235 * associated, the pointer_stylus_exists protocol error is raised.
236 */
237 static inline struct zcr_pointer_stylus_v2 *
zcr_stylus_v2_get_pointer_stylus(struct zcr_stylus_v2 * zcr_stylus_v2,struct wl_pointer * pointer)238 zcr_stylus_v2_get_pointer_stylus(struct zcr_stylus_v2 *zcr_stylus_v2, struct wl_pointer *pointer)
239 {
240 struct wl_proxy *id;
241
242 id = wl_proxy_marshal_flags((struct wl_proxy *) zcr_stylus_v2,
243 ZCR_STYLUS_V2_GET_POINTER_STYLUS, &zcr_pointer_stylus_v2_interface, wl_proxy_get_version((struct wl_proxy *) zcr_stylus_v2), 0, NULL, pointer);
244
245 return (struct zcr_pointer_stylus_v2 *) id;
246 }
247
248 #ifndef ZCR_TOUCH_STYLUS_V2_TOOL_TYPE_ENUM
249 #define ZCR_TOUCH_STYLUS_V2_TOOL_TYPE_ENUM
250 /**
251 * @ingroup iface_zcr_touch_stylus_v2
252 * tool type of device.
253 */
254 enum zcr_touch_stylus_v2_tool_type {
255 /**
256 * Touch
257 */
258 ZCR_TOUCH_STYLUS_V2_TOOL_TYPE_TOUCH = 1,
259 /**
260 * Pen
261 */
262 ZCR_TOUCH_STYLUS_V2_TOOL_TYPE_PEN = 2,
263 /**
264 * Eraser
265 */
266 ZCR_TOUCH_STYLUS_V2_TOOL_TYPE_ERASER = 3,
267 };
268 #endif /* ZCR_TOUCH_STYLUS_V2_TOOL_TYPE_ENUM */
269
270 /**
271 * @ingroup iface_zcr_touch_stylus_v2
272 * @struct zcr_touch_stylus_v2_listener
273 */
274 struct zcr_touch_stylus_v2_listener {
275 /**
276 * sets tool type of touch
277 *
278 * Notification that the user is using a tool type other than
279 * touch. There can only be one tool in use at a time. This event
280 * is sent in the same frame as the wl_touch.down event. The tool
281 * type cannot change while a touch is being reported.
282 * @param id touch id
283 * @param type type of tool in use
284 */
285 void (*tool)(void *data,
286 struct zcr_touch_stylus_v2 *zcr_touch_stylus_v2,
287 uint32_t id,
288 uint32_t type);
289 /**
290 * force change event
291 *
292 * Notification of a change in physical force on the surface of
293 * the screen. The force is calibrated and normalized to the 0 to 1
294 * range.
295 * @param time timestamp with millisecond granularity
296 * @param id touch id
297 * @param force new value of force
298 */
299 void (*force)(void *data,
300 struct zcr_touch_stylus_v2 *zcr_touch_stylus_v2,
301 uint32_t time,
302 uint32_t id,
303 wl_fixed_t force);
304 /**
305 * tilt change event
306 *
307 * Notification of a change in tilt of a stylus.
308 *
309 * Measured from surface normal as plane angle in degrees, values
310 * lie in [-90,90]. A positive x is to the right and a positive y
311 * is towards the user.
312 * @param time timestamp with millisecond granularity
313 * @param id touch id
314 * @param tilt_x tilt in x direction
315 * @param tilt_y tilt in y direction
316 */
317 void (*tilt)(void *data,
318 struct zcr_touch_stylus_v2 *zcr_touch_stylus_v2,
319 uint32_t time,
320 uint32_t id,
321 wl_fixed_t tilt_x,
322 wl_fixed_t tilt_y);
323 };
324
325 /**
326 * @ingroup iface_zcr_touch_stylus_v2
327 */
328 static inline int
zcr_touch_stylus_v2_add_listener(struct zcr_touch_stylus_v2 * zcr_touch_stylus_v2,const struct zcr_touch_stylus_v2_listener * listener,void * data)329 zcr_touch_stylus_v2_add_listener(struct zcr_touch_stylus_v2 *zcr_touch_stylus_v2,
330 const struct zcr_touch_stylus_v2_listener *listener, void *data)
331 {
332 return wl_proxy_add_listener((struct wl_proxy *) zcr_touch_stylus_v2,
333 (void (**)(void)) listener, data);
334 }
335
336 #define ZCR_TOUCH_STYLUS_V2_DESTROY 0
337
338 /**
339 * @ingroup iface_zcr_touch_stylus_v2
340 */
341 #define ZCR_TOUCH_STYLUS_V2_TOOL_SINCE_VERSION 1
342 /**
343 * @ingroup iface_zcr_touch_stylus_v2
344 */
345 #define ZCR_TOUCH_STYLUS_V2_FORCE_SINCE_VERSION 1
346 /**
347 * @ingroup iface_zcr_touch_stylus_v2
348 */
349 #define ZCR_TOUCH_STYLUS_V2_TILT_SINCE_VERSION 1
350
351 /**
352 * @ingroup iface_zcr_touch_stylus_v2
353 */
354 #define ZCR_TOUCH_STYLUS_V2_DESTROY_SINCE_VERSION 1
355
356 /** @ingroup iface_zcr_touch_stylus_v2 */
357 static inline void
zcr_touch_stylus_v2_set_user_data(struct zcr_touch_stylus_v2 * zcr_touch_stylus_v2,void * user_data)358 zcr_touch_stylus_v2_set_user_data(struct zcr_touch_stylus_v2 *zcr_touch_stylus_v2, void *user_data)
359 {
360 wl_proxy_set_user_data((struct wl_proxy *) zcr_touch_stylus_v2, user_data);
361 }
362
363 /** @ingroup iface_zcr_touch_stylus_v2 */
364 static inline void *
zcr_touch_stylus_v2_get_user_data(struct zcr_touch_stylus_v2 * zcr_touch_stylus_v2)365 zcr_touch_stylus_v2_get_user_data(struct zcr_touch_stylus_v2 *zcr_touch_stylus_v2)
366 {
367 return wl_proxy_get_user_data((struct wl_proxy *) zcr_touch_stylus_v2);
368 }
369
370 static inline uint32_t
zcr_touch_stylus_v2_get_version(struct zcr_touch_stylus_v2 * zcr_touch_stylus_v2)371 zcr_touch_stylus_v2_get_version(struct zcr_touch_stylus_v2 *zcr_touch_stylus_v2)
372 {
373 return wl_proxy_get_version((struct wl_proxy *) zcr_touch_stylus_v2);
374 }
375
376 /**
377 * @ingroup iface_zcr_touch_stylus_v2
378 */
379 static inline void
zcr_touch_stylus_v2_destroy(struct zcr_touch_stylus_v2 * zcr_touch_stylus_v2)380 zcr_touch_stylus_v2_destroy(struct zcr_touch_stylus_v2 *zcr_touch_stylus_v2)
381 {
382 wl_proxy_marshal_flags((struct wl_proxy *) zcr_touch_stylus_v2,
383 ZCR_TOUCH_STYLUS_V2_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_touch_stylus_v2), WL_MARSHAL_FLAG_DESTROY);
384 }
385
386 #ifndef ZCR_POINTER_STYLUS_V2_TOOL_TYPE_ENUM
387 #define ZCR_POINTER_STYLUS_V2_TOOL_TYPE_ENUM
388 /**
389 * @ingroup iface_zcr_pointer_stylus_v2
390 * the tool type of the device
391 */
392 enum zcr_pointer_stylus_v2_tool_type {
393 /**
394 * Default pointer device
395 */
396 ZCR_POINTER_STYLUS_V2_TOOL_TYPE_NONE = 0,
397 /**
398 * Touch
399 */
400 ZCR_POINTER_STYLUS_V2_TOOL_TYPE_TOUCH = 1,
401 /**
402 * Pen
403 */
404 ZCR_POINTER_STYLUS_V2_TOOL_TYPE_PEN = 2,
405 /**
406 * Eraser
407 */
408 ZCR_POINTER_STYLUS_V2_TOOL_TYPE_ERASER = 3,
409 };
410 #endif /* ZCR_POINTER_STYLUS_V2_TOOL_TYPE_ENUM */
411
412 /**
413 * @ingroup iface_zcr_pointer_stylus_v2
414 * @struct zcr_pointer_stylus_v2_listener
415 */
416 struct zcr_pointer_stylus_v2_listener {
417 /**
418 * tool change event
419 *
420 * Notification that the user is using a tool type other than
421 * touch. There can only be one tool in use at a time.
422 * @param type type of tool in use
423 */
424 void (*tool)(void *data,
425 struct zcr_pointer_stylus_v2 *zcr_pointer_stylus_v2,
426 uint32_t type);
427 /**
428 * force change event
429 *
430 * Notification of the physical force of the stylus on the
431 * surface. The force is calibrated and normalized to the 0 to 1
432 * range.
433 *
434 * The client should assume that the force value is reset when the
435 * tool changes, and that the tool does not support force detection
436 * until the first force event is sent. That force value will
437 * persist until the next force update or tool change.
438 * @param time timestamp with millisecond granularity
439 * @param force new value of force
440 */
441 void (*force)(void *data,
442 struct zcr_pointer_stylus_v2 *zcr_pointer_stylus_v2,
443 uint32_t time,
444 wl_fixed_t force);
445 /**
446 * tilt change event
447 *
448 * Notification of a change in tilt of a stylus.
449 *
450 * Measured from surface normal as plane angle in degrees, values
451 * lie in [-90,90]. A positive x is to the right and a positive y
452 * is towards the user.
453 *
454 * The client should assume that the tilt value is reset when the
455 * tool changes, and that the tool does not support tilt detection
456 * until the first tilt event is sent. That value will persist
457 * until the next tilt update or tool change.
458 * @param time timestamp with millisecond granularity
459 * @param tilt_x tilt in x direction
460 * @param tilt_y tilt in y direction
461 */
462 void (*tilt)(void *data,
463 struct zcr_pointer_stylus_v2 *zcr_pointer_stylus_v2,
464 uint32_t time,
465 wl_fixed_t tilt_x,
466 wl_fixed_t tilt_y);
467 };
468
469 /**
470 * @ingroup iface_zcr_pointer_stylus_v2
471 */
472 static inline int
zcr_pointer_stylus_v2_add_listener(struct zcr_pointer_stylus_v2 * zcr_pointer_stylus_v2,const struct zcr_pointer_stylus_v2_listener * listener,void * data)473 zcr_pointer_stylus_v2_add_listener(struct zcr_pointer_stylus_v2 *zcr_pointer_stylus_v2,
474 const struct zcr_pointer_stylus_v2_listener *listener, void *data)
475 {
476 return wl_proxy_add_listener((struct wl_proxy *) zcr_pointer_stylus_v2,
477 (void (**)(void)) listener, data);
478 }
479
480 #define ZCR_POINTER_STYLUS_V2_DESTROY 0
481
482 /**
483 * @ingroup iface_zcr_pointer_stylus_v2
484 */
485 #define ZCR_POINTER_STYLUS_V2_TOOL_SINCE_VERSION 1
486 /**
487 * @ingroup iface_zcr_pointer_stylus_v2
488 */
489 #define ZCR_POINTER_STYLUS_V2_FORCE_SINCE_VERSION 1
490 /**
491 * @ingroup iface_zcr_pointer_stylus_v2
492 */
493 #define ZCR_POINTER_STYLUS_V2_TILT_SINCE_VERSION 1
494
495 /**
496 * @ingroup iface_zcr_pointer_stylus_v2
497 */
498 #define ZCR_POINTER_STYLUS_V2_DESTROY_SINCE_VERSION 1
499
500 /** @ingroup iface_zcr_pointer_stylus_v2 */
501 static inline void
zcr_pointer_stylus_v2_set_user_data(struct zcr_pointer_stylus_v2 * zcr_pointer_stylus_v2,void * user_data)502 zcr_pointer_stylus_v2_set_user_data(struct zcr_pointer_stylus_v2 *zcr_pointer_stylus_v2, void *user_data)
503 {
504 wl_proxy_set_user_data((struct wl_proxy *) zcr_pointer_stylus_v2, user_data);
505 }
506
507 /** @ingroup iface_zcr_pointer_stylus_v2 */
508 static inline void *
zcr_pointer_stylus_v2_get_user_data(struct zcr_pointer_stylus_v2 * zcr_pointer_stylus_v2)509 zcr_pointer_stylus_v2_get_user_data(struct zcr_pointer_stylus_v2 *zcr_pointer_stylus_v2)
510 {
511 return wl_proxy_get_user_data((struct wl_proxy *) zcr_pointer_stylus_v2);
512 }
513
514 static inline uint32_t
zcr_pointer_stylus_v2_get_version(struct zcr_pointer_stylus_v2 * zcr_pointer_stylus_v2)515 zcr_pointer_stylus_v2_get_version(struct zcr_pointer_stylus_v2 *zcr_pointer_stylus_v2)
516 {
517 return wl_proxy_get_version((struct wl_proxy *) zcr_pointer_stylus_v2);
518 }
519
520 /**
521 * @ingroup iface_zcr_pointer_stylus_v2
522 */
523 static inline void
zcr_pointer_stylus_v2_destroy(struct zcr_pointer_stylus_v2 * zcr_pointer_stylus_v2)524 zcr_pointer_stylus_v2_destroy(struct zcr_pointer_stylus_v2 *zcr_pointer_stylus_v2)
525 {
526 wl_proxy_marshal_flags((struct wl_proxy *) zcr_pointer_stylus_v2,
527 ZCR_POINTER_STYLUS_V2_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_pointer_stylus_v2), WL_MARSHAL_FLAG_DESTROY);
528 }
529
530 #ifdef __cplusplus
531 }
532 #endif
533
534 #endif
535