Documentation for <wlr/backend/session.h>

Back to index

Table of contents

struct wlr_device

struct wlr_device {
	int fd;
	int device_id;
	dev_t dev;
	struct wl_list link;
	
	struct {
		struct wl_signal change; // struct wlr_device_change_event
		struct wl_signal remove;
	} events;
};

struct wlr_device_change_event

struct wlr_device_change_event {
	enum wlr_device_change_type type;
	union {
		struct wlr_device_hotplug_event hotplug;
	} ;
};

enum wlr_device_change_type

enum wlr_device_change_type {
	WLR_DEVICE_HOTPLUG,
	WLR_DEVICE_LEASE,
};

struct wlr_device_hotplug_event

struct wlr_device_hotplug_event {
	uint32_t connector_id;
	uint32_t prop_id;
};

struct wlr_session

struct wlr_session {
	/*
	 * Signal for when the session becomes active/inactive.
	 * It's called when we swap virtual terminal.
	 */
	bool active;
	
	/*
	 * 0 if virtual terminals are not supported
	 * i.e. seat != "seat0"
	 */
	unsigned vtnr;
	char seat[];
	
	struct udev *udev;
	struct udev_monitor *mon;
	struct wl_event_source *udev_event;
	
	struct libseat *seat_handle;
	struct wl_event_source *libseat_event;
	
	struct wl_list devices;
	
	struct wl_display *display;
	struct wl_listener display_destroy;
	
	struct {
		struct wl_signal active;
		struct wl_signal add_drm_card; // struct wlr_session_add_event
		struct wl_signal destroy;
	} events;
};

struct wlr_session_add_event

struct wlr_session_add_event {
	const char *path;
};

wlr_session_change_vt()

bool wlr_session_change_vt(​struct wlr_session *session, unsigned vt);

wlr_session_close_file()

void wlr_session_close_file(​struct wlr_session *session, struct wlr_device *device);

wlr_session_create()

struct wlr_session *wlr_session_create(​struct wl_display *disp);

wlr_session_destroy()

void wlr_session_destroy(​struct wlr_session *session);

wlr_session_find_gpus()

ssize_t wlr_session_find_gpus(​struct wlr_session *session, size_t ret_len, struct wlr_device **ret);

wlr_session_open_file()

struct wlr_device *wlr_session_open_file(​struct wlr_session *session, const char *path);