mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	Split out types.h and wlr/types.h
TODO: Update the code accordingly and move other types into the same paradigm
This commit is contained in:
		
							parent
							
								
									fd5ad15894
								
							
						
					
					
						commit
						53a8b4f127
					
				
					 16 changed files with 499 additions and 427 deletions
				
			
		| 
						 | 
					@ -1,77 +0,0 @@
 | 
				
			||||||
#ifndef _WLR_WAYLAND_INTERNAL_H
 | 
					 | 
				
			||||||
#define _WLR_WAYLAND_INTERNAL_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <wayland-server.h>
 | 
					 | 
				
			||||||
#include <wlr/types.h>
 | 
					 | 
				
			||||||
#include <stdbool.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_output_impl {
 | 
					 | 
				
			||||||
	void (*enable)(struct wlr_output_state *state, bool enable);
 | 
					 | 
				
			||||||
	bool (*set_mode)(struct wlr_output_state *state,
 | 
					 | 
				
			||||||
			struct wlr_output_mode *mode);
 | 
					 | 
				
			||||||
	void (*transform)(struct wlr_output_state *state,
 | 
					 | 
				
			||||||
			enum wl_output_transform transform);
 | 
					 | 
				
			||||||
	bool (*set_cursor)(struct wlr_output_state *state,
 | 
					 | 
				
			||||||
		const uint8_t *buf, int32_t stride, uint32_t width, uint32_t height);
 | 
					 | 
				
			||||||
	bool (*move_cursor)(struct wlr_output_state *state, int x, int y);
 | 
					 | 
				
			||||||
	void (*destroy)(struct wlr_output_state *state);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_output *wlr_output_create(struct wlr_output_impl *impl,
 | 
					 | 
				
			||||||
		struct wlr_output_state *state);
 | 
					 | 
				
			||||||
void wlr_output_free(struct wlr_output *output);
 | 
					 | 
				
			||||||
void wlr_output_update_matrix(struct wlr_output *output);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_keyboard_impl {
 | 
					 | 
				
			||||||
	void (*destroy)(struct wlr_keyboard_state *state);
 | 
					 | 
				
			||||||
	void (*led_update)(struct wlr_keyboard_state *state, uint32_t leds);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_keyboard *wlr_keyboard_create(struct wlr_keyboard_impl *impl,
 | 
					 | 
				
			||||||
		struct wlr_keyboard_state *state);
 | 
					 | 
				
			||||||
void wlr_keyboard_destroy(struct wlr_keyboard *keyboard);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_pointer_impl {
 | 
					 | 
				
			||||||
	void (*destroy)(struct wlr_pointer_state *state);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_pointer *wlr_pointer_create(struct wlr_pointer_impl *impl,
 | 
					 | 
				
			||||||
		struct wlr_pointer_state *state);
 | 
					 | 
				
			||||||
void wlr_pointer_destroy(struct wlr_pointer *pointer);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_touch_impl {
 | 
					 | 
				
			||||||
	void (*destroy)(struct wlr_touch_state *state);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_touch *wlr_touch_create(struct wlr_touch_impl *impl,
 | 
					 | 
				
			||||||
		struct wlr_touch_state *state);
 | 
					 | 
				
			||||||
void wlr_touch_destroy(struct wlr_touch *touch);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_tool_impl {
 | 
					 | 
				
			||||||
	void (*destroy)(struct wlr_tablet_tool_state *tool);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_tool *wlr_tablet_tool_create(struct wlr_tablet_tool_impl *impl,
 | 
					 | 
				
			||||||
		struct wlr_tablet_tool_state *state);
 | 
					 | 
				
			||||||
void wlr_tablet_tool_destroy(struct wlr_tablet_tool *tool);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_pad_impl {
 | 
					 | 
				
			||||||
	void (*destroy)(struct wlr_tablet_pad_state *pad);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_pad *wlr_tablet_pad_create(struct wlr_tablet_pad_impl *impl,
 | 
					 | 
				
			||||||
		struct wlr_tablet_pad_state *state);
 | 
					 | 
				
			||||||
void wlr_tablet_pad_destroy(struct wlr_tablet_pad *pad);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_input_device_impl {
 | 
					 | 
				
			||||||
	void (*destroy)(struct wlr_input_device_state *state);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_input_device *wlr_input_device_create(
 | 
					 | 
				
			||||||
		enum wlr_input_device_type type,
 | 
					 | 
				
			||||||
		struct wlr_input_device_impl *impl,
 | 
					 | 
				
			||||||
		struct wlr_input_device_state *state,
 | 
					 | 
				
			||||||
		const char *name, int vendor, int product);
 | 
					 | 
				
			||||||
void wlr_input_device_destroy(struct wlr_input_device *dev);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
							
								
								
									
										16
									
								
								include/wlr/interfaces/wlr_input_device.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								include/wlr/interfaces/wlr_input_device.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_INTERFACES_INPUT_DEVICE_H
 | 
				
			||||||
 | 
					#define _WLR_INTERFACES_INPUT_DEVICE_H
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_input_device.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_input_device_impl {
 | 
				
			||||||
 | 
						void (*destroy)(struct wlr_input_device_state *state);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_input_device *wlr_input_device_create(
 | 
				
			||||||
 | 
							enum wlr_input_device_type type,
 | 
				
			||||||
 | 
							struct wlr_input_device_impl *impl,
 | 
				
			||||||
 | 
							struct wlr_input_device_state *state,
 | 
				
			||||||
 | 
							const char *name, int vendor, int product);
 | 
				
			||||||
 | 
					void wlr_input_device_destroy(struct wlr_input_device *dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										15
									
								
								include/wlr/interfaces/wlr_keyboard.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								include/wlr/interfaces/wlr_keyboard.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_INTERFACE_KEYBOARD_H
 | 
				
			||||||
 | 
					#define _WLR_INTERFACE_KEYBOARD_H
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_keyboard.h>
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_keyboard_impl {
 | 
				
			||||||
 | 
						void (*destroy)(struct wlr_keyboard_state *state);
 | 
				
			||||||
 | 
						void (*led_update)(struct wlr_keyboard_state *state, uint32_t leds);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_keyboard *wlr_keyboard_create(struct wlr_keyboard_impl *impl,
 | 
				
			||||||
 | 
							struct wlr_keyboard_state *state);
 | 
				
			||||||
 | 
					void wlr_keyboard_destroy(struct wlr_keyboard *keyboard);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										22
									
								
								include/wlr/interfaces/wlr_output.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								include/wlr/interfaces/wlr_output.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_INTERFACE_OUTPUT_H
 | 
				
			||||||
 | 
					#define _WLR_INTERFACE_OUTPUT_H
 | 
				
			||||||
 | 
					#include <wlr/interfaces/wlr_output.h>
 | 
				
			||||||
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_output_impl {
 | 
				
			||||||
 | 
						void (*enable)(struct wlr_output_state *state, bool enable);
 | 
				
			||||||
 | 
						bool (*set_mode)(struct wlr_output_state *state,
 | 
				
			||||||
 | 
								struct wlr_output_mode *mode);
 | 
				
			||||||
 | 
						void (*transform)(struct wlr_output_state *state,
 | 
				
			||||||
 | 
								enum wl_output_transform transform);
 | 
				
			||||||
 | 
						bool (*set_cursor)(struct wlr_output_state *state,
 | 
				
			||||||
 | 
							const uint8_t *buf, int32_t stride, uint32_t width, uint32_t height);
 | 
				
			||||||
 | 
						bool (*move_cursor)(struct wlr_output_state *state, int x, int y);
 | 
				
			||||||
 | 
						void (*destroy)(struct wlr_output_state *state);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_output *wlr_output_create(struct wlr_output_impl *impl,
 | 
				
			||||||
 | 
							struct wlr_output_state *state);
 | 
				
			||||||
 | 
					void wlr_output_free(struct wlr_output *output);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										13
									
								
								include/wlr/interfaces/wlr_pointer.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								include/wlr/interfaces/wlr_pointer.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_INTERFACES_POINTER_H
 | 
				
			||||||
 | 
					#define _WLR_INTERFACES_POINTER_H
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_pointer.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_pointer_impl {
 | 
				
			||||||
 | 
						void (*destroy)(struct wlr_pointer_state *state);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_pointer *wlr_pointer_create(struct wlr_pointer_impl *impl,
 | 
				
			||||||
 | 
							struct wlr_pointer_state *state);
 | 
				
			||||||
 | 
					void wlr_pointer_destroy(struct wlr_pointer *pointer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										13
									
								
								include/wlr/interfaces/wlr_tablet_pad.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								include/wlr/interfaces/wlr_tablet_pad.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_INTERFACES_TABLET_PAD_H
 | 
				
			||||||
 | 
					#define _WLR_INTERFACES_TABLET_PAD_H
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_tablet_pad.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_pad_impl {
 | 
				
			||||||
 | 
						void (*destroy)(struct wlr_tablet_pad_state *pad);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_pad *wlr_tablet_pad_create(struct wlr_tablet_pad_impl *impl,
 | 
				
			||||||
 | 
							struct wlr_tablet_pad_state *state);
 | 
				
			||||||
 | 
					void wlr_tablet_pad_destroy(struct wlr_tablet_pad *pad);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										13
									
								
								include/wlr/interfaces/wlr_tablet_tool.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								include/wlr/interfaces/wlr_tablet_tool.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_INTERFACES_TABLET_TOOL_H
 | 
				
			||||||
 | 
					#define _WLR_INTERFACES_TABLET_TOOL_H
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_tablet_tool.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_tool_impl {
 | 
				
			||||||
 | 
						void (*destroy)(struct wlr_tablet_tool_state *tool);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_tool *wlr_tablet_tool_create(struct wlr_tablet_tool_impl *impl,
 | 
				
			||||||
 | 
							struct wlr_tablet_tool_state *state);
 | 
				
			||||||
 | 
					void wlr_tablet_tool_destroy(struct wlr_tablet_tool *tool);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										13
									
								
								include/wlr/interfaces/wlr_touch.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								include/wlr/interfaces/wlr_touch.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_INTERFACES_TOUCH_H
 | 
				
			||||||
 | 
					#define _WLR_INTERFACES_TOUCH_H
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_touch.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_touch_impl {
 | 
				
			||||||
 | 
						void (*destroy)(struct wlr_touch_state *state);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_touch *wlr_touch_create(struct wlr_touch_impl *impl,
 | 
				
			||||||
 | 
							struct wlr_touch_state *state);
 | 
				
			||||||
 | 
					void wlr_touch_destroy(struct wlr_touch *touch);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					@ -1,350 +0,0 @@
 | 
				
			||||||
#ifndef _WLR_WAYLAND_H
 | 
					 | 
				
			||||||
#define _WLR_WAYLAND_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <wayland-server.h>
 | 
					 | 
				
			||||||
#include <wlr/common/list.h>
 | 
					 | 
				
			||||||
#include <stdbool.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_output_mode_state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_output_mode {
 | 
					 | 
				
			||||||
	struct wlr_output_mode_state *state;
 | 
					 | 
				
			||||||
	uint32_t flags; // enum wl_output_mode
 | 
					 | 
				
			||||||
	int32_t width, height;
 | 
					 | 
				
			||||||
	int32_t refresh; // mHz
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_output_impl;
 | 
					 | 
				
			||||||
struct wlr_output_state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_output {
 | 
					 | 
				
			||||||
	const struct wlr_output_impl *impl;
 | 
					 | 
				
			||||||
	struct wlr_output_state *state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	uint32_t flags;
 | 
					 | 
				
			||||||
	char name[16];
 | 
					 | 
				
			||||||
	char make[48];
 | 
					 | 
				
			||||||
	char model[16];
 | 
					 | 
				
			||||||
	uint32_t scale;
 | 
					 | 
				
			||||||
	int32_t width, height;
 | 
					 | 
				
			||||||
	int32_t phys_width, phys_height; // mm
 | 
					 | 
				
			||||||
	int32_t subpixel; // enum wl_output_subpixel
 | 
					 | 
				
			||||||
	int32_t transform; // enum wl_output_transform
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	float transform_matrix[16];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* Note: some backends may have zero modes */
 | 
					 | 
				
			||||||
	list_t *modes;
 | 
					 | 
				
			||||||
	struct wlr_output_mode *current_mode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	struct {
 | 
					 | 
				
			||||||
		struct wl_signal frame;
 | 
					 | 
				
			||||||
		struct wl_signal resolution;
 | 
					 | 
				
			||||||
	} events;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void wlr_output_enable(struct wlr_output *output, bool enable);
 | 
					 | 
				
			||||||
bool wlr_output_set_mode(struct wlr_output *output,
 | 
					 | 
				
			||||||
		struct wlr_output_mode *mode);
 | 
					 | 
				
			||||||
void wlr_output_transform(struct wlr_output *output,
 | 
					 | 
				
			||||||
		enum wl_output_transform transform);
 | 
					 | 
				
			||||||
bool wlr_output_set_cursor(struct wlr_output *output,
 | 
					 | 
				
			||||||
		const uint8_t *buf, int32_t stride, uint32_t width, uint32_t height);
 | 
					 | 
				
			||||||
bool wlr_output_move_cursor(struct wlr_output *output, int x, int y);
 | 
					 | 
				
			||||||
void wlr_output_destroy(struct wlr_output *output);
 | 
					 | 
				
			||||||
void wlr_output_effective_resolution(struct wlr_output *output,
 | 
					 | 
				
			||||||
		int *width, int *height);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum WLR_KEYBOARD_LED {
 | 
					 | 
				
			||||||
	WLR_LED_NUM_LOCK = 1,
 | 
					 | 
				
			||||||
	WLR_LED_CAPS_LOCK = 2,
 | 
					 | 
				
			||||||
	WLR_LED_SCROLL_LOCK = 4,
 | 
					 | 
				
			||||||
	WLR_LED_LAST
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_keyboard_state;
 | 
					 | 
				
			||||||
struct wlr_keyboard_impl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_keyboard {
 | 
					 | 
				
			||||||
	struct wlr_keyboard_state *state;
 | 
					 | 
				
			||||||
	struct wlr_keyboard_impl *impl;
 | 
					 | 
				
			||||||
	uint32_t leds;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	struct {
 | 
					 | 
				
			||||||
		struct wl_signal key;
 | 
					 | 
				
			||||||
	} events;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void wlr_keyboard_led_update(struct wlr_keyboard *keyboard, uint32_t leds);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum wlr_key_state {
 | 
					 | 
				
			||||||
	WLR_KEY_RELEASED,
 | 
					 | 
				
			||||||
	WLR_KEY_PRESSED,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_keyboard_key {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	uint32_t keycode;
 | 
					 | 
				
			||||||
	enum wlr_key_state state;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_pointer_state;
 | 
					 | 
				
			||||||
struct wlr_pointer_impl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_pointer {
 | 
					 | 
				
			||||||
	struct wlr_pointer_state *state;
 | 
					 | 
				
			||||||
	struct wlr_pointer_impl *impl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	struct {
 | 
					 | 
				
			||||||
		struct wl_signal motion;
 | 
					 | 
				
			||||||
		struct wl_signal motion_absolute;
 | 
					 | 
				
			||||||
		struct wl_signal button;
 | 
					 | 
				
			||||||
		struct wl_signal axis;
 | 
					 | 
				
			||||||
	} events;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_pointer_motion {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	double delta_x, delta_y;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_pointer_motion_absolute {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	double x_mm, y_mm;
 | 
					 | 
				
			||||||
	double width_mm, height_mm;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum wlr_button_state {
 | 
					 | 
				
			||||||
	WLR_BUTTON_RELEASED,
 | 
					 | 
				
			||||||
	WLR_BUTTON_PRESSED,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_pointer_button {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	uint32_t button;
 | 
					 | 
				
			||||||
	enum wlr_button_state state;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum wlr_axis_source {
 | 
					 | 
				
			||||||
	WLR_AXIS_SOURCE_WHEEL,
 | 
					 | 
				
			||||||
	WLR_AXIS_SOURCE_FINGER,
 | 
					 | 
				
			||||||
	WLR_AXIS_SOURCE_CONTINUOUS,
 | 
					 | 
				
			||||||
	WLR_AXIS_SOURCE_WHEEL_TILT,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum wlr_axis_orientation {
 | 
					 | 
				
			||||||
	WLR_AXIS_ORIENTATION_VERTICAL,
 | 
					 | 
				
			||||||
	WLR_AXIS_ORIENTATION_HORIZONTAL,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_pointer_axis {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	enum wlr_axis_source source;
 | 
					 | 
				
			||||||
	enum wlr_axis_orientation orientation;
 | 
					 | 
				
			||||||
	double delta;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_touch_state;
 | 
					 | 
				
			||||||
struct wlr_touch_impl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_touch {
 | 
					 | 
				
			||||||
	struct wlr_touch_state *state;
 | 
					 | 
				
			||||||
	struct wlr_touch_impl *impl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	struct {
 | 
					 | 
				
			||||||
		struct wl_signal down;
 | 
					 | 
				
			||||||
		struct wl_signal up;
 | 
					 | 
				
			||||||
		struct wl_signal motion;
 | 
					 | 
				
			||||||
		struct wl_signal cancel;
 | 
					 | 
				
			||||||
	} events;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_touch_down {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	int32_t slot;
 | 
					 | 
				
			||||||
	double x_mm, y_mm;
 | 
					 | 
				
			||||||
	double width_mm, height_mm;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_touch_up {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	int32_t slot;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_touch_motion {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	int32_t slot;
 | 
					 | 
				
			||||||
	double x_mm, y_mm;
 | 
					 | 
				
			||||||
	double width_mm, height_mm;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_touch_cancel {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	int32_t slot;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_tool_impl;
 | 
					 | 
				
			||||||
struct wlr_tablet_tool_state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_tool {
 | 
					 | 
				
			||||||
	struct wlr_tablet_tool_impl *impl;
 | 
					 | 
				
			||||||
	struct wlr_tablet_tool_state *state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	struct {
 | 
					 | 
				
			||||||
		struct wl_signal axis;
 | 
					 | 
				
			||||||
		struct wl_signal proximity;
 | 
					 | 
				
			||||||
		struct wl_signal tip;
 | 
					 | 
				
			||||||
		struct wl_signal button;
 | 
					 | 
				
			||||||
	} events;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum wlr_tablet_tool_axes {
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_AXIS_X = 1,
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_AXIS_Y = 2,
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_AXIS_DISTANCE = 4,
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_AXIS_PRESSURE = 8,
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_AXIS_TILT_X = 16,
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_AXIS_TILT_Y = 32,
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_AXIS_ROTATION = 64,
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_AXIS_SLIDER = 128,
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_AXIS_WHEEL = 256,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_tool_axis {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	uint32_t updated_axes;
 | 
					 | 
				
			||||||
	double x_mm, y_mm;
 | 
					 | 
				
			||||||
	double width_mm, height_mm;
 | 
					 | 
				
			||||||
	double pressure;
 | 
					 | 
				
			||||||
	double distance;
 | 
					 | 
				
			||||||
	double tilt_x, tilt_y;
 | 
					 | 
				
			||||||
	double rotation;
 | 
					 | 
				
			||||||
	double slider;
 | 
					 | 
				
			||||||
	double wheel_delta;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum wlr_tablet_tool_proximity_state {
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_PROXIMITY_OUT,
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_PROXIMITY_IN,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_tool_proximity {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	double x, y;
 | 
					 | 
				
			||||||
	double width_mm, height_mm;
 | 
					 | 
				
			||||||
	enum wlr_tablet_tool_proximity_state state;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum wlr_tablet_tool_tip_state {
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_TIP_UP,
 | 
					 | 
				
			||||||
	WLR_TABLET_TOOL_TIP_DOWN,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_tool_tip {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	double x, y;
 | 
					 | 
				
			||||||
	double width_mm, height_mm;
 | 
					 | 
				
			||||||
	enum wlr_tablet_tool_tip_state state;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_tool_button {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	uint32_t button;
 | 
					 | 
				
			||||||
	enum wlr_button_state state;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NOTE: the wlr tablet pad implementation does not currently support tablets
 | 
					 | 
				
			||||||
// with more than one mode. I don't own any such hardware so I cannot test it
 | 
					 | 
				
			||||||
// and it is too complicated to make a meaningful implementation of blindly.
 | 
					 | 
				
			||||||
struct wlr_tablet_pad_impl;
 | 
					 | 
				
			||||||
struct wlr_tablet_pad_state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_pad {
 | 
					 | 
				
			||||||
	struct wlr_tablet_pad_impl *impl;
 | 
					 | 
				
			||||||
	struct wlr_tablet_pad_state *state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	struct {
 | 
					 | 
				
			||||||
		struct wl_signal button;
 | 
					 | 
				
			||||||
		struct wl_signal ring;
 | 
					 | 
				
			||||||
		struct wl_signal strip;
 | 
					 | 
				
			||||||
	} events;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_pad_button {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	uint32_t button;
 | 
					 | 
				
			||||||
	enum wlr_button_state state;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum wlr_tablet_pad_ring_source {
 | 
					 | 
				
			||||||
	WLR_TABLET_PAD_RING_SOURCE_UNKNOWN,
 | 
					 | 
				
			||||||
	WLR_TABLET_PAD_RING_SOURCE_FINGER,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_pad_ring {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	enum wlr_tablet_pad_ring_source source;
 | 
					 | 
				
			||||||
	uint32_t ring;
 | 
					 | 
				
			||||||
	double position;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum wlr_tablet_pad_strip_source {
 | 
					 | 
				
			||||||
	WLR_TABLET_PAD_STRIP_SOURCE_UNKNOWN,
 | 
					 | 
				
			||||||
	WLR_TABLET_PAD_STRIP_SOURCE_FINGER,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_tablet_pad_strip {
 | 
					 | 
				
			||||||
	uint32_t time_sec;
 | 
					 | 
				
			||||||
	uint64_t time_usec;
 | 
					 | 
				
			||||||
	enum wlr_tablet_pad_strip_source source;
 | 
					 | 
				
			||||||
	uint32_t strip;
 | 
					 | 
				
			||||||
	double position;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum wlr_input_device_type {
 | 
					 | 
				
			||||||
	WLR_INPUT_DEVICE_KEYBOARD,
 | 
					 | 
				
			||||||
	WLR_INPUT_DEVICE_POINTER,
 | 
					 | 
				
			||||||
	WLR_INPUT_DEVICE_TOUCH,
 | 
					 | 
				
			||||||
	WLR_INPUT_DEVICE_TABLET_TOOL,
 | 
					 | 
				
			||||||
	WLR_INPUT_DEVICE_TABLET_PAD,
 | 
					 | 
				
			||||||
	WLR_INPUT_DEVICE_GESTURE,
 | 
					 | 
				
			||||||
	WLR_INPUT_DEVICE_SWITCH,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_input_device_state;
 | 
					 | 
				
			||||||
struct wlr_input_device_impl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct wlr_input_device {
 | 
					 | 
				
			||||||
	struct wlr_input_device_state *state;
 | 
					 | 
				
			||||||
	struct wlr_input_device_impl *impl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	enum wlr_input_device_type type;
 | 
					 | 
				
			||||||
	int vendor, product;
 | 
					 | 
				
			||||||
	char *name;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	union {
 | 
					 | 
				
			||||||
		void *_device;
 | 
					 | 
				
			||||||
		struct wlr_keyboard *keyboard;
 | 
					 | 
				
			||||||
		struct wlr_pointer *pointer;
 | 
					 | 
				
			||||||
		struct wlr_touch *touch;
 | 
					 | 
				
			||||||
		struct wlr_tablet_tool *tablet_tool;
 | 
					 | 
				
			||||||
		struct wlr_tablet_pad *tablet_pad;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
							
								
								
									
										46
									
								
								include/wlr/types/wlr_input_device.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								include/wlr/types/wlr_input_device.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,46 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_TYPES_INPUT_H
 | 
				
			||||||
 | 
					#define _WLR_TYPES_INPUT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum wlr_button_state {
 | 
				
			||||||
 | 
						WLR_BUTTON_RELEASED,
 | 
				
			||||||
 | 
						WLR_BUTTON_PRESSED,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum wlr_input_device_type {
 | 
				
			||||||
 | 
						WLR_INPUT_DEVICE_KEYBOARD,
 | 
				
			||||||
 | 
						WLR_INPUT_DEVICE_POINTER,
 | 
				
			||||||
 | 
						WLR_INPUT_DEVICE_TOUCH,
 | 
				
			||||||
 | 
						WLR_INPUT_DEVICE_TABLET_TOOL,
 | 
				
			||||||
 | 
						WLR_INPUT_DEVICE_TABLET_PAD
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Note: these are circular dependencies */
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_keyboard.h>
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_pointer.h>
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_touch.h>
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_tablet_tool.h>
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_tablet_pad.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_input_device_state;
 | 
				
			||||||
 | 
					struct wlr_input_device_impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_input_device {
 | 
				
			||||||
 | 
						struct wlr_input_device_state *state;
 | 
				
			||||||
 | 
						struct wlr_input_device_impl *impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						enum wlr_input_device_type type;
 | 
				
			||||||
 | 
						int vendor, product;
 | 
				
			||||||
 | 
						char *name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* wlr_input_device.type determines which of these is valid */
 | 
				
			||||||
 | 
						union {
 | 
				
			||||||
 | 
							void *_device;
 | 
				
			||||||
 | 
							struct wlr_keyboard *keyboard;
 | 
				
			||||||
 | 
							struct wlr_pointer *pointer;
 | 
				
			||||||
 | 
							struct wlr_touch *touch;
 | 
				
			||||||
 | 
							struct wlr_tablet_tool *tablet_tool;
 | 
				
			||||||
 | 
							struct wlr_tablet_pad *tablet_pad;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										39
									
								
								include/wlr/types/wlr_keyboard.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								include/wlr/types/wlr_keyboard.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,39 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_TYPES_KEYBOARD_H
 | 
				
			||||||
 | 
					#define _WLR_TYPES_KEYBOARD_H
 | 
				
			||||||
 | 
					#include <wayland-server.h>
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum WLR_KEYBOARD_LED {
 | 
				
			||||||
 | 
						WLR_LED_NUM_LOCK = 1,
 | 
				
			||||||
 | 
						WLR_LED_CAPS_LOCK = 2,
 | 
				
			||||||
 | 
						WLR_LED_SCROLL_LOCK = 4,
 | 
				
			||||||
 | 
						WLR_LED_LAST
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_keyboard_state;
 | 
				
			||||||
 | 
					struct wlr_keyboard_impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_keyboard {
 | 
				
			||||||
 | 
						struct wlr_keyboard_state *state;
 | 
				
			||||||
 | 
						struct wlr_keyboard_impl *impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						struct {
 | 
				
			||||||
 | 
							struct wl_signal key;
 | 
				
			||||||
 | 
						} events;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void wlr_keyboard_led_update(struct wlr_keyboard *keyboard, uint32_t leds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum wlr_key_state {
 | 
				
			||||||
 | 
						WLR_KEY_RELEASED,
 | 
				
			||||||
 | 
						WLR_KEY_PRESSED,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_keyboard_key {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						uint32_t keycode;
 | 
				
			||||||
 | 
						enum wlr_key_state state;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										57
									
								
								include/wlr/types/wlr_output.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								include/wlr/types/wlr_output.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,57 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_TYPES_OUTPUT_H
 | 
				
			||||||
 | 
					#define _WLR_TYPES_OUTPUT_H
 | 
				
			||||||
 | 
					#include <wayland-server.h>
 | 
				
			||||||
 | 
					#include <wlr/common/list.h>
 | 
				
			||||||
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_output_mode_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_output_mode {
 | 
				
			||||||
 | 
						struct wlr_output_mode_state *state;
 | 
				
			||||||
 | 
						uint32_t flags; // enum wl_output_mode
 | 
				
			||||||
 | 
						int32_t width, height;
 | 
				
			||||||
 | 
						int32_t refresh; // mHz
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_output_impl;
 | 
				
			||||||
 | 
					struct wlr_output_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_output {
 | 
				
			||||||
 | 
						const struct wlr_output_impl *impl;
 | 
				
			||||||
 | 
						struct wlr_output_state *state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						uint32_t flags;
 | 
				
			||||||
 | 
						char name[16];
 | 
				
			||||||
 | 
						char make[48];
 | 
				
			||||||
 | 
						char model[16];
 | 
				
			||||||
 | 
						uint32_t scale;
 | 
				
			||||||
 | 
						int32_t width, height;
 | 
				
			||||||
 | 
						int32_t phys_width, phys_height; // mm
 | 
				
			||||||
 | 
						int32_t subpixel; // enum wl_output_subpixel
 | 
				
			||||||
 | 
						int32_t transform; // enum wl_output_transform
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						float transform_matrix[16];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Note: some backends may have zero modes */
 | 
				
			||||||
 | 
						list_t *modes;
 | 
				
			||||||
 | 
						struct wlr_output_mode *current_mode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						struct {
 | 
				
			||||||
 | 
							struct wl_signal frame;
 | 
				
			||||||
 | 
							struct wl_signal resolution;
 | 
				
			||||||
 | 
						} events;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void wlr_output_enable(struct wlr_output *output, bool enable);
 | 
				
			||||||
 | 
					bool wlr_output_set_mode(struct wlr_output *output,
 | 
				
			||||||
 | 
							struct wlr_output_mode *mode);
 | 
				
			||||||
 | 
					void wlr_output_transform(struct wlr_output *output,
 | 
				
			||||||
 | 
							enum wl_output_transform transform);
 | 
				
			||||||
 | 
					bool wlr_output_set_cursor(struct wlr_output *output,
 | 
				
			||||||
 | 
							const uint8_t *buf, int32_t stride, uint32_t width, uint32_t height);
 | 
				
			||||||
 | 
					bool wlr_output_move_cursor(struct wlr_output *output, int x, int y);
 | 
				
			||||||
 | 
					void wlr_output_destroy(struct wlr_output *output);
 | 
				
			||||||
 | 
					void wlr_output_effective_resolution(struct wlr_output *output,
 | 
				
			||||||
 | 
							int *width, int *height);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										62
									
								
								include/wlr/types/wlr_pointer.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								include/wlr/types/wlr_pointer.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,62 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_TYPES_POINTER_H
 | 
				
			||||||
 | 
					#define _WLR_TYPES_POINTER_H
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_input_device.h>
 | 
				
			||||||
 | 
					#include <wayland-server.h>
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_pointer_state;
 | 
				
			||||||
 | 
					struct wlr_pointer_impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_pointer {
 | 
				
			||||||
 | 
						struct wlr_pointer_state *state;
 | 
				
			||||||
 | 
						struct wlr_pointer_impl *impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						struct {
 | 
				
			||||||
 | 
							struct wl_signal motion;
 | 
				
			||||||
 | 
							struct wl_signal motion_absolute;
 | 
				
			||||||
 | 
							struct wl_signal button;
 | 
				
			||||||
 | 
							struct wl_signal axis;
 | 
				
			||||||
 | 
						} events;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_pointer_motion {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						double delta_x, delta_y;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_pointer_motion_absolute {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						double x_mm, y_mm;
 | 
				
			||||||
 | 
						double width_mm, height_mm;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_pointer_button {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						uint32_t button;
 | 
				
			||||||
 | 
						enum wlr_button_state state;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum wlr_axis_source {
 | 
				
			||||||
 | 
						WLR_AXIS_SOURCE_WHEEL,
 | 
				
			||||||
 | 
						WLR_AXIS_SOURCE_FINGER,
 | 
				
			||||||
 | 
						WLR_AXIS_SOURCE_CONTINUOUS,
 | 
				
			||||||
 | 
						WLR_AXIS_SOURCE_WHEEL_TILT,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum wlr_axis_orientation {
 | 
				
			||||||
 | 
						WLR_AXIS_ORIENTATION_VERTICAL,
 | 
				
			||||||
 | 
						WLR_AXIS_ORIENTATION_HORIZONTAL,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_pointer_axis {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						enum wlr_axis_source source;
 | 
				
			||||||
 | 
						enum wlr_axis_orientation orientation;
 | 
				
			||||||
 | 
						double delta;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										60
									
								
								include/wlr/types/wlr_tablet_pad.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								include/wlr/types/wlr_tablet_pad.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,60 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_TYPES_TABLET_PAD_H
 | 
				
			||||||
 | 
					#define _WLR_TYPES_TABLET_PAD_H
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_input_device.h>
 | 
				
			||||||
 | 
					#include <wayland-server.h>
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * NOTE: the wlr tablet pad implementation does not currently support tablets
 | 
				
			||||||
 | 
					 * with more than one mode. I don't own any such hardware so I cannot test it
 | 
				
			||||||
 | 
					 * and it is too complicated to make a meaningful implementation of blindly.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_pad_impl;
 | 
				
			||||||
 | 
					struct wlr_tablet_pad_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_pad {
 | 
				
			||||||
 | 
						struct wlr_tablet_pad_impl *impl;
 | 
				
			||||||
 | 
						struct wlr_tablet_pad_state *state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						struct {
 | 
				
			||||||
 | 
							struct wl_signal button;
 | 
				
			||||||
 | 
							struct wl_signal ring;
 | 
				
			||||||
 | 
							struct wl_signal strip;
 | 
				
			||||||
 | 
						} events;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_pad_button {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						uint32_t button;
 | 
				
			||||||
 | 
						enum wlr_button_state state;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum wlr_tablet_pad_ring_source {
 | 
				
			||||||
 | 
						WLR_TABLET_PAD_RING_SOURCE_UNKNOWN,
 | 
				
			||||||
 | 
						WLR_TABLET_PAD_RING_SOURCE_FINGER,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_pad_ring {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						enum wlr_tablet_pad_ring_source source;
 | 
				
			||||||
 | 
						uint32_t ring;
 | 
				
			||||||
 | 
						double position;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum wlr_tablet_pad_strip_source {
 | 
				
			||||||
 | 
						WLR_TABLET_PAD_STRIP_SOURCE_UNKNOWN,
 | 
				
			||||||
 | 
						WLR_TABLET_PAD_STRIP_SOURCE_FINGER,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_pad_strip {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						enum wlr_tablet_pad_strip_source source;
 | 
				
			||||||
 | 
						uint32_t strip;
 | 
				
			||||||
 | 
						double position;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										81
									
								
								include/wlr/types/wlr_tablet_tool.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								include/wlr/types/wlr_tablet_tool.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,81 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_TYPES_TABLET_TOOL_H
 | 
				
			||||||
 | 
					#define _WLR_TYPES_TABLET_TOOL_H
 | 
				
			||||||
 | 
					#include <wlr/types/wlr_input_device.h>
 | 
				
			||||||
 | 
					#include <wayland-server.h>
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_tool_impl;
 | 
				
			||||||
 | 
					struct wlr_tablet_tool_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_tool {
 | 
				
			||||||
 | 
						struct wlr_tablet_tool_impl *impl;
 | 
				
			||||||
 | 
						struct wlr_tablet_tool_state *state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						struct {
 | 
				
			||||||
 | 
							struct wl_signal axis;
 | 
				
			||||||
 | 
							struct wl_signal proximity;
 | 
				
			||||||
 | 
							struct wl_signal tip;
 | 
				
			||||||
 | 
							struct wl_signal button;
 | 
				
			||||||
 | 
						} events;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum wlr_tablet_tool_axes {
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_AXIS_X = 1,
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_AXIS_Y = 2,
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_AXIS_DISTANCE = 4,
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_AXIS_PRESSURE = 8,
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_AXIS_TILT_X = 16,
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_AXIS_TILT_Y = 32,
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_AXIS_ROTATION = 64,
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_AXIS_SLIDER = 128,
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_AXIS_WHEEL = 256,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_tool_axis {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						uint32_t updated_axes;
 | 
				
			||||||
 | 
						double x_mm, y_mm;
 | 
				
			||||||
 | 
						double width_mm, height_mm;
 | 
				
			||||||
 | 
						double pressure;
 | 
				
			||||||
 | 
						double distance;
 | 
				
			||||||
 | 
						double tilt_x, tilt_y;
 | 
				
			||||||
 | 
						double rotation;
 | 
				
			||||||
 | 
						double slider;
 | 
				
			||||||
 | 
						double wheel_delta;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum wlr_tablet_tool_proximity_state {
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_PROXIMITY_OUT,
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_PROXIMITY_IN,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_tool_proximity {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						double x, y;
 | 
				
			||||||
 | 
						double width_mm, height_mm;
 | 
				
			||||||
 | 
						enum wlr_tablet_tool_proximity_state state;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum wlr_tablet_tool_tip_state {
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_TIP_UP,
 | 
				
			||||||
 | 
						WLR_TABLET_TOOL_TIP_DOWN,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_tool_tip {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						double x, y;
 | 
				
			||||||
 | 
						double width_mm, height_mm;
 | 
				
			||||||
 | 
						enum wlr_tablet_tool_tip_state state;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_tablet_tool_button {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						uint32_t button;
 | 
				
			||||||
 | 
						enum wlr_button_state state;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										49
									
								
								include/wlr/types/wlr_touch.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								include/wlr/types/wlr_touch.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,49 @@
 | 
				
			||||||
 | 
					#ifndef _WLR_TYPES_TOUCH_H
 | 
				
			||||||
 | 
					#define _WLR_TYPES_TOUCH_H
 | 
				
			||||||
 | 
					#include <wayland-server.h>
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_touch_state;
 | 
				
			||||||
 | 
					struct wlr_touch_impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_touch {
 | 
				
			||||||
 | 
						struct wlr_touch_state *state;
 | 
				
			||||||
 | 
						struct wlr_touch_impl *impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						struct {
 | 
				
			||||||
 | 
							struct wl_signal down;
 | 
				
			||||||
 | 
							struct wl_signal up;
 | 
				
			||||||
 | 
							struct wl_signal motion;
 | 
				
			||||||
 | 
							struct wl_signal cancel;
 | 
				
			||||||
 | 
						} events;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_touch_down {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						int32_t slot;
 | 
				
			||||||
 | 
						double x_mm, y_mm;
 | 
				
			||||||
 | 
						double width_mm, height_mm;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_touch_up {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						int32_t slot;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_touch_motion {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						int32_t slot;
 | 
				
			||||||
 | 
						double x_mm, y_mm;
 | 
				
			||||||
 | 
						double width_mm, height_mm;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct wlr_touch_cancel {
 | 
				
			||||||
 | 
						uint32_t time_sec;
 | 
				
			||||||
 | 
						uint64_t time_usec;
 | 
				
			||||||
 | 
						int32_t slot;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue