6 /***********************************************************
8 ***********************************************************/
10 #define WL_MESSAGE_LEN 4096
33 /***********************************************************
35 ***********************************************************/
37 /* Interface Versions */
38 #define WL_DISPLAY_VERSION 1
39 #define WL_REGISTRY_VERSION 1
40 #define WL_CALLBACK_VERSION 1
41 #define WL_COMPOSITOR_VERSION 3
42 #define WL_SHM_POOL_VERSION 1
43 #define WL_SHM_VERSION 1
44 #define WL_BUFFER_VERSION 1
45 #define WL_DATA_OFFER_VERSION 1
46 #define WL_DATA_SOURCE_VERSION 1
47 #define WL_DATA_DEVICE_VERSION 1
48 #define WL_DATA_DEVICE_MANAGER_VERSION 1
49 #define WL_SHELL_VERSION 1
50 #define WL_SHELL_SURFACE_VERSION 1
51 #define WL_SURFACE_VERSION 3
52 #define WL_SEAT_VERSION 4
53 #define WL_POINTER_VERSION 3
54 #define WL_KEYBOARD_VERSION 4
55 #define WL_TOUCH_VERSION 3
56 #define WL_OUTPUT_VERSION 2
57 #define WL_REGION_VERSION 1
58 #define WL_SUBCOMPOSITOR_VERSION 1
59 #define WL_SUBSURFACE_VERSION 1
73 WL_DATA_DEVICE_MANAGER = 10,
75 WL_SHELL_SURFACE = 12,
83 WL_SUBCOMPOSITOR = 20,
85 WL_NUM_INTERFACES = 22,
88 /***********************************************************
89 * Interface WL_DISPLAY
90 ***********************************************************/
95 WL_DISPLAY_GET_REGISTRY = 1,
96 WL_NUM_DISPLAY_REQUESTS = 2,
97 } wl_display_request_t;
101 WL_DISPLAY_ERROR = 0,
102 WL_DISPLAY_DELETE_ID = 1,
103 WL_NUM_DISPLAY_EVENTS = 2,
104 } wl_display_event_t;
106 /* Requests Messages */
113 } wl_display_get_registry_t;
115 /* Events Messages */
120 } wl_display_error_t;
124 } wl_display_delete_id_t;
126 /***********************************************************
127 * Interface WL_REGISTRY
128 ***********************************************************/
132 WL_REGISTRY_BIND = 0,
133 WL_NUM_REGISTRY_REQUESTS = 1,
134 } wl_registry_request_t;
138 WL_REGISTRY_GLOBAL = 0,
139 WL_REGISTRY_GLOBAL_REMOVE = 1,
140 WL_NUM_REGISTRY_EVENTS = 2,
141 } wl_registry_event_t;
143 /* Requests Messages */
147 } wl_registry_bind_t;
149 /* Events Messages */
152 wl_string_t interface;
154 } wl_registry_global_t;
158 } wl_registry_global_remove_t;
160 /***********************************************************
161 * Interface WL_CALLBACK
162 ***********************************************************/
166 WL_CALLBACK_DONE = 0,
167 WL_NUM_CALLBACK_EVENTS = 1,
168 } wl_callback_event_t;
170 /* Events Messages */
172 uint32_t callback_data;
173 } wl_callback_done_t;
175 /***********************************************************
176 * Interface WL_COMPOSITOR
177 ***********************************************************/
181 WL_COMPOSITOR_CREATE_SURFACE = 0,
182 WL_COMPOSITOR_CREATE_REGION = 1,
183 WL_NUM_COMPOSITOR_REQUESTS = 2,
184 } wl_compositor_request_t;
186 /* Requests Messages */
189 } wl_compositor_create_surface_t;
193 } wl_compositor_create_region_t;
195 /***********************************************************
196 * Interface WL_SHM_POOL
197 ***********************************************************/
201 WL_SHM_POOL_CREATE_BUFFER = 0,
202 WL_SHM_POOL_DESTROY = 1,
203 WL_SHM_POOL_RESIZE = 2,
204 WL_NUM_SHM_POOL_REQUESTS = 3,
205 } wl_shm_pool_request_t;
207 /* Requests Messages */
215 } wl_shm_pool_create_buffer_t;
219 } wl_shm_pool_resize_t;
221 /***********************************************************
223 ***********************************************************/
227 WL_SHM_CREATE_POOL = 0,
228 WL_NUM_SHM_REQUESTS = 1,
234 WL_NUM_SHM_EVENTS = 1,
237 /* Requests Messages */
241 } wl_shm_create_pool_t;
243 /* Events Messages */
248 /***********************************************************
249 * Interface WL_BUFFER
250 ***********************************************************/
254 WL_BUFFER_DESTROY = 0,
255 WL_NUM_BUFFER_REQUESTS = 1,
256 } wl_buffer_request_t;
260 WL_BUFFER_RELEASE = 0,
261 WL_NUM_BUFFER_EVENTS = 1,
264 /***********************************************************
265 * Interface WL_DATA_OFFER
266 ***********************************************************/
270 WL_DATA_OFFER_ACCEPT = 0,
271 WL_DATA_OFFER_RECEIVE = 1,
272 WL_DATA_OFFER_DESTROY = 2,
273 WL_NUM_DATA_OFFER_REQUESTS = 3,
274 } wl_data_offer_request_t;
278 WL_DATA_OFFER_OFFER = 0,
279 WL_NUM_DATA_OFFER_EVENTS = 1,
280 } wl_data_offer_event_t;
282 /* Requests Messages */
285 wl_string_t mime_type;
286 } wl_data_offer_accept_t;
289 wl_string_t mime_type;
290 } wl_data_offer_receive_t;
292 /* Events Messages */
294 wl_string_t mime_type;
295 } wl_data_offer_offer_t;
297 /***********************************************************
298 * Interface WL_DATA_SOURCE
299 ***********************************************************/
303 WL_DATA_SOURCE_OFFER = 0,
304 WL_DATA_SOURCE_DESTROY = 1,
305 WL_NUM_DATA_SOURCE_REQUESTS = 2,
306 } wl_data_source_request_t;
310 WL_DATA_SOURCE_TARGET = 0,
311 WL_DATA_SOURCE_SEND = 1,
312 WL_DATA_SOURCE_CANCELLED = 2,
313 WL_NUM_DATA_SOURCE_EVENTS = 3,
314 } wl_data_source_event_t;
316 /* Requests Messages */
318 wl_string_t mime_type;
319 } wl_data_source_offer_t;
321 /* Events Messages */
323 wl_string_t mime_type;
324 } wl_data_source_target_t;
327 wl_string_t mime_type;
328 } wl_data_source_send_t;
330 /***********************************************************
331 * Interface WL_DATA_DEVICE
332 ***********************************************************/
336 WL_DATA_DEVICE_START_DRAG = 0,
337 WL_DATA_DEVICE_SET_SELECTION = 1,
338 WL_NUM_DATA_DEVICE_REQUESTS = 2,
339 } wl_data_device_request_t;
343 WL_DATA_DEVICE_DATA_OFFER = 0,
344 WL_DATA_DEVICE_ENTER = 1,
345 WL_DATA_DEVICE_LEAVE = 2,
346 WL_DATA_DEVICE_MOTION = 3,
347 WL_DATA_DEVICE_DROP = 4,
348 WL_DATA_DEVICE_SELECTION = 5,
349 WL_NUM_DATA_DEVICE_EVENTS = 6,
350 } wl_data_device_event_t;
352 /* Requests Messages */
358 } wl_data_device_start_drag_t;
363 } wl_data_device_set_selection_t;
365 /* Events Messages */
368 } wl_data_device_data_offer_t;
376 } wl_data_device_enter_t;
382 } wl_data_device_motion_t;
386 } wl_data_device_selection_t;
388 /***********************************************************
389 * Interface WL_DATA_DEVICE_MANAGER
390 ***********************************************************/
394 WL_DATA_DEVICE_MANAGER_CREATE_DATA_SOURCE = 0,
395 WL_DATA_DEVICE_MANAGER_GET_DATA_DEVICE = 1,
396 WL_NUM_DATA_DEVICE_MANAGER_REQUESTS = 2,
397 } wl_data_device_manager_request_t;
399 /* Requests Messages */
402 } wl_data_device_manager_create_data_source_t;
407 } wl_data_device_manager_get_data_device_t;
409 /***********************************************************
411 ***********************************************************/
415 WL_SHELL_GET_SHELL_SURFACE = 0,
416 WL_NUM_SHELL_REQUESTS = 1,
417 } wl_shell_request_t;
419 /* Requests Messages */
423 } wl_shell_get_shell_surface_t;
425 /***********************************************************
426 * Interface WL_SHELL_SURFACE
427 ***********************************************************/
431 WL_SHELL_SURFACE_PONG = 0,
432 WL_SHELL_SURFACE_MOVE = 1,
433 WL_SHELL_SURFACE_RESIZE = 2,
434 WL_SHELL_SURFACE_SET_TOPLEVEL = 3,
435 WL_SHELL_SURFACE_SET_TRANSIENT = 4,
436 WL_SHELL_SURFACE_SET_FULLSCREEN = 5,
437 WL_SHELL_SURFACE_SET_POPUP = 6,
438 WL_SHELL_SURFACE_SET_MAXIMIZED = 7,
439 WL_SHELL_SURFACE_SET_TITLE = 8,
440 WL_SHELL_SURFACE_SET_CLASS = 9,
441 WL_NUM_SHELL_SURFACE_REQUESTS = 10,
442 } wl_shell_surface_request_t;
446 WL_SHELL_SURFACE_PING = 0,
447 WL_SHELL_SURFACE_CONFIGURE = 1,
448 WL_SHELL_SURFACE_POPUP_DONE = 2,
449 WL_NUM_SHELL_SURFACE_EVENTS = 3,
450 } wl_shell_surface_event_t;
452 /* Requests Messages */
455 } wl_shell_surface_pong_t;
460 } wl_shell_surface_move_t;
466 } wl_shell_surface_resize_t;
473 } wl_shell_surface_set_transient_t;
479 } wl_shell_surface_set_fullscreen_t;
488 } wl_shell_surface_set_popup_t;
492 } wl_shell_surface_set_maximized_t;
496 } wl_shell_surface_set_title_t;
500 } wl_shell_surface_set_class_t;
502 /* Events Messages */
505 } wl_shell_surface_ping_t;
511 } wl_shell_surface_configure_t;
513 /***********************************************************
514 * Interface WL_SURFACE
515 ***********************************************************/
519 WL_SURFACE_DESTROY = 0,
520 WL_SURFACE_ATTACH = 1,
521 WL_SURFACE_DAMAGE = 2,
522 WL_SURFACE_FRAME = 3,
523 WL_SURFACE_SET_OPAQUE_REGION = 4,
524 WL_SURFACE_SET_INPUT_REGION = 5,
525 WL_SURFACE_COMMIT = 6,
526 WL_SURFACE_SET_BUFFER_TRANSFORM = 7,
527 WL_SURFACE_SET_BUFFER_SCALE = 8,
528 WL_NUM_SURFACE_REQUESTS = 9,
529 } wl_surface_request_t;
533 WL_SURFACE_ENTER = 0,
534 WL_SURFACE_LEAVE = 1,
535 WL_NUM_SURFACE_EVENTS = 2,
536 } wl_surface_event_t;
538 /* Requests Messages */
543 } wl_surface_attach_t;
550 } wl_surface_damage_t;
554 } wl_surface_frame_t;
558 } wl_surface_set_opaque_region_t;
562 } wl_surface_set_input_region_t;
566 } wl_surface_set_buffer_transform_t;
570 } wl_surface_set_buffer_scale_t;
572 /* Events Messages */
575 } wl_surface_enter_t;
579 } wl_surface_leave_t;
581 /***********************************************************
583 ***********************************************************/
587 WL_SEAT_GET_POINTER = 0,
588 WL_SEAT_GET_KEYBOARD = 1,
589 WL_SEAT_GET_TOUCH = 2,
590 WL_NUM_SEAT_REQUESTS = 3,
595 WL_SEAT_CAPABILITIES = 0,
597 WL_NUM_SEAT_EVENTS = 2,
600 /* Requests Messages */
603 } wl_seat_get_pointer_t;
607 } wl_seat_get_keyboard_t;
611 } wl_seat_get_touch_t;
613 /* Events Messages */
615 uint32_t capabilities;
616 } wl_seat_capabilities_t;
622 /***********************************************************
623 * Interface WL_POINTER
624 ***********************************************************/
628 WL_POINTER_SET_CURSOR = 0,
629 WL_POINTER_RELEASE = 1,
630 WL_NUM_POINTER_REQUESTS = 2,
631 } wl_pointer_request_t;
635 WL_POINTER_ENTER = 0,
636 WL_POINTER_LEAVE = 1,
637 WL_POINTER_MOTION = 2,
638 WL_POINTER_BUTTON = 3,
640 WL_NUM_POINTER_EVENTS = 5,
641 } wl_pointer_event_t;
643 /* Requests Messages */
649 } wl_pointer_set_cursor_t;
651 /* Events Messages */
655 wl_fixed_t surface_x;
656 wl_fixed_t surface_y;
657 } wl_pointer_enter_t;
662 } wl_pointer_leave_t;
666 wl_fixed_t surface_x;
667 wl_fixed_t surface_y;
668 } wl_pointer_motion_t;
675 } wl_pointer_button_t;
683 /***********************************************************
684 * Interface WL_KEYBOARD
685 ***********************************************************/
689 WL_KEYBOARD_RELEASE = 0,
690 WL_NUM_KEYBOARD_REQUESTS = 1,
691 } wl_keyboard_request_t;
695 WL_KEYBOARD_KEYMAP = 0,
696 WL_KEYBOARD_ENTER = 1,
697 WL_KEYBOARD_LEAVE = 2,
699 WL_KEYBOARD_MODIFIERS = 4,
700 WL_KEYBOARD_REPEAT_INFO = 5,
701 WL_NUM_KEYBOARD_EVENTS = 6,
702 } wl_keyboard_event_t;
704 /* Events Messages */
708 } wl_keyboard_keymap_t;
714 } wl_keyboard_enter_t;
719 } wl_keyboard_leave_t;
730 uint32_t mods_depressed;
731 uint32_t mods_latched;
732 uint32_t mods_locked;
734 } wl_keyboard_modifiers_t;
739 } wl_keyboard_repeat_info_t;
741 /***********************************************************
743 ***********************************************************/
747 WL_TOUCH_RELEASE = 0,
748 WL_NUM_TOUCH_REQUESTS = 1,
749 } wl_touch_request_t;
758 WL_NUM_TOUCH_EVENTS = 5,
761 /* Events Messages */
784 /***********************************************************
785 * Interface WL_OUTPUT
786 ***********************************************************/
790 WL_OUTPUT_GEOMETRY = 0,
794 WL_NUM_OUTPUT_EVENTS = 4,
797 /* Events Messages */
801 int32_t physical_width;
802 int32_t physical_height;
807 } wl_output_geometry_t;
820 /***********************************************************
821 * Interface WL_REGION
822 ***********************************************************/
826 WL_REGION_DESTROY = 0,
828 WL_REGION_SUBTRACT = 2,
829 WL_NUM_REGION_REQUESTS = 3,
830 } wl_region_request_t;
832 /* Requests Messages */
845 } wl_region_subtract_t;
847 /***********************************************************
848 * Interface WL_SUBCOMPOSITOR
849 ***********************************************************/
853 WL_SUBCOMPOSITOR_DESTROY = 0,
854 WL_SUBCOMPOSITOR_GET_SUBSURFACE = 1,
855 WL_NUM_SUBCOMPOSITOR_REQUESTS = 2,
856 } wl_subcompositor_request_t;
858 /* Requests Messages */
863 } wl_subcompositor_get_subsurface_t;
865 /***********************************************************
866 * Interface WL_SUBSURFACE
867 ***********************************************************/
871 WL_SUBSURFACE_DESTROY = 0,
872 WL_SUBSURFACE_SET_POSITION = 1,
873 WL_SUBSURFACE_PLACE_ABOVE = 2,
874 WL_SUBSURFACE_PLACE_BELOW = 3,
875 WL_SUBSURFACE_SET_SYNC = 4,
876 WL_SUBSURFACE_SET_DESYNC = 5,
877 WL_NUM_SUBSURFACE_REQUESTS = 6,
878 } wl_subsurface_request_t;
880 /* Requests Messages */
884 } wl_subsurface_set_position_t;
888 } wl_subsurface_place_above_t;
892 } wl_subsurface_place_below_t;
896 wl_display_sync_t wl_display_sync;
897 wl_display_get_registry_t wl_display_get_registry;
898 wl_registry_bind_t wl_registry_bind;
899 wl_compositor_create_surface_t wl_compositor_create_surface;
900 wl_compositor_create_region_t wl_compositor_create_region;
901 wl_shm_pool_create_buffer_t wl_shm_pool_create_buffer;
902 wl_shm_pool_resize_t wl_shm_pool_resize;
903 wl_shm_create_pool_t wl_shm_create_pool;
904 wl_data_offer_accept_t wl_data_offer_accept;
905 wl_data_offer_receive_t wl_data_offer_receive;
906 wl_data_source_offer_t wl_data_source_offer;
907 wl_data_device_start_drag_t wl_data_device_start_drag;
908 wl_data_device_set_selection_t wl_data_device_set_selection;
909 wl_data_device_manager_create_data_source_t wl_data_device_manager_create_data_source;
910 wl_data_device_manager_get_data_device_t wl_data_device_manager_get_data_device;
911 wl_shell_get_shell_surface_t wl_shell_get_shell_surface;
912 wl_shell_surface_pong_t wl_shell_surface_pong;
913 wl_shell_surface_move_t wl_shell_surface_move;
914 wl_shell_surface_resize_t wl_shell_surface_resize;
915 wl_shell_surface_set_transient_t wl_shell_surface_set_transient;
916 wl_shell_surface_set_fullscreen_t wl_shell_surface_set_fullscreen;
917 wl_shell_surface_set_popup_t wl_shell_surface_set_popup;
918 wl_shell_surface_set_maximized_t wl_shell_surface_set_maximized;
919 wl_shell_surface_set_title_t wl_shell_surface_set_title;
920 wl_shell_surface_set_class_t wl_shell_surface_set_class;
921 wl_surface_attach_t wl_surface_attach;
922 wl_surface_damage_t wl_surface_damage;
923 wl_surface_frame_t wl_surface_frame;
924 wl_surface_set_opaque_region_t wl_surface_set_opaque_region;
925 wl_surface_set_input_region_t wl_surface_set_input_region;
926 wl_surface_set_buffer_transform_t wl_surface_set_buffer_transform;
927 wl_surface_set_buffer_scale_t wl_surface_set_buffer_scale;
928 wl_seat_get_pointer_t wl_seat_get_pointer;
929 wl_seat_get_keyboard_t wl_seat_get_keyboard;
930 wl_seat_get_touch_t wl_seat_get_touch;
931 wl_pointer_set_cursor_t wl_pointer_set_cursor;
932 wl_region_add_t wl_region_add;
933 wl_region_subtract_t wl_region_subtract;
934 wl_subcompositor_get_subsurface_t wl_subcompositor_get_subsurface;
935 wl_subsurface_set_position_t wl_subsurface_set_position;
936 wl_subsurface_place_above_t wl_subsurface_place_above;
937 wl_subsurface_place_below_t wl_subsurface_place_below;
941 wl_display_error_t wl_display_error;
942 wl_display_delete_id_t wl_display_delete_id;
943 wl_registry_global_t wl_registry_global;
944 wl_registry_global_remove_t wl_registry_global_remove;
945 wl_callback_done_t wl_callback_done;
946 wl_shm_format_t wl_shm_format;
947 wl_data_offer_offer_t wl_data_offer_offer;
948 wl_data_source_target_t wl_data_source_target;
949 wl_data_source_send_t wl_data_source_send;
950 wl_data_device_data_offer_t wl_data_device_data_offer;
951 wl_data_device_enter_t wl_data_device_enter;
952 wl_data_device_motion_t wl_data_device_motion;
953 wl_data_device_selection_t wl_data_device_selection;
954 wl_shell_surface_ping_t wl_shell_surface_ping;
955 wl_shell_surface_configure_t wl_shell_surface_configure;
956 wl_surface_enter_t wl_surface_enter;
957 wl_surface_leave_t wl_surface_leave;
958 wl_seat_capabilities_t wl_seat_capabilities;
959 wl_seat_name_t wl_seat_name;
960 wl_pointer_enter_t wl_pointer_enter;
961 wl_pointer_leave_t wl_pointer_leave;
962 wl_pointer_motion_t wl_pointer_motion;
963 wl_pointer_button_t wl_pointer_button;
964 wl_pointer_axis_t wl_pointer_axis;
965 wl_keyboard_keymap_t wl_keyboard_keymap;
966 wl_keyboard_enter_t wl_keyboard_enter;
967 wl_keyboard_leave_t wl_keyboard_leave;
968 wl_keyboard_key_t wl_keyboard_key;
969 wl_keyboard_modifiers_t wl_keyboard_modifiers;
970 wl_keyboard_repeat_info_t wl_keyboard_repeat_info;
971 wl_touch_down_t wl_touch_down;
972 wl_touch_up_t wl_touch_up;
973 wl_touch_motion_t wl_touch_motion;
974 wl_output_geometry_t wl_output_geometry;
975 wl_output_mode_t wl_output_mode;
976 wl_output_scale_t wl_output_scale;
979 /***********************************************************
981 ***********************************************************/
984 #define WL_ARRAY_NONE '-'
985 #define WL_ARRAY_STRING 's'
986 #define WL_ARRAY_ARRAY 'a'
987 #define WL_ARRAY_FD 'f'
989 extern const char **wl_rarray[WL_NUM_INTERFACES];
990 extern const char **wl_earray[WL_NUM_INTERFACES];
993 #ifdef WL_DEFINE_TABLES
994 const char **wl_rarray[WL_NUM_INTERFACES] = {
995 [WL_SHM] (const char *[WL_NUM_SHM_REQUESTS]) {
996 [WL_SHM_CREATE_POOL] "-f-",
998 [WL_DATA_OFFER] (const char *[WL_NUM_DATA_OFFER_REQUESTS]) {
999 [WL_DATA_OFFER_ACCEPT] "-s",
1000 [WL_DATA_OFFER_RECEIVE] "sf",
1002 [WL_DATA_SOURCE] (const char *[WL_NUM_DATA_SOURCE_REQUESTS]) {
1003 [WL_DATA_SOURCE_OFFER] "s",
1005 [WL_SHELL_SURFACE] (const char *[WL_NUM_SHELL_SURFACE_REQUESTS]) {
1006 [WL_SHELL_SURFACE_SET_TITLE] "s",
1007 [WL_SHELL_SURFACE_SET_CLASS] "s",
1013 #ifdef WL_DEFINE_TABLES
1014 const char **wl_earray[WL_NUM_INTERFACES] = {
1015 [WL_DISPLAY] (const char *[WL_NUM_DISPLAY_EVENTS]) {
1016 [WL_DISPLAY_ERROR] "--s",
1018 [WL_REGISTRY] (const char *[WL_NUM_REGISTRY_EVENTS]) {
1019 [WL_REGISTRY_GLOBAL] "-s-",
1021 [WL_DATA_OFFER] (const char *[WL_NUM_DATA_OFFER_EVENTS]) {
1022 [WL_DATA_OFFER_OFFER] "s",
1024 [WL_DATA_SOURCE] (const char *[WL_NUM_DATA_SOURCE_EVENTS]) {
1025 [WL_DATA_SOURCE_TARGET] "s",
1026 [WL_DATA_SOURCE_SEND] "sf",
1028 [WL_SEAT] (const char *[WL_NUM_SEAT_EVENTS]) {
1031 [WL_KEYBOARD] (const char *[WL_NUM_KEYBOARD_EVENTS]) {
1032 [WL_KEYBOARD_KEYMAP] "-f-",
1033 [WL_KEYBOARD_ENTER] "--a",
1035 [WL_OUTPUT] (const char *[WL_NUM_OUTPUT_EVENTS]) {
1036 [WL_OUTPUT_GEOMETRY] "-----ss-",