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