aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/backend/drm/backend.h4
-rw-r--r--include/backend/drm/drm.h2
-rw-r--r--include/session/interface.h9
-rw-r--r--include/wlr/session.h21
4 files changed, 28 insertions, 8 deletions
diff --git a/include/backend/drm/backend.h b/include/backend/drm/backend.h
index 0c725ccb..e603bccd 100644
--- a/include/backend/drm/backend.h
+++ b/include/backend/drm/backend.h
@@ -19,10 +19,14 @@
struct wlr_backend_state {
int fd;
+ dev_t dev;
struct wlr_backend *backend;
struct wl_event_source *drm_event;
+ struct wl_listener device_paused;
+ struct wl_listener device_resumed;
+
uint32_t taken_crtcs;
list_t *outputs;
diff --git a/include/backend/drm/drm.h b/include/backend/drm/drm.h
index 52ca65f0..004f3a10 100644
--- a/include/backend/drm/drm.h
+++ b/include/backend/drm/drm.h
@@ -59,4 +59,6 @@ void wlr_drm_output_cleanup(struct wlr_output_state *output, bool restore);
void wlr_drm_scan_connectors(struct wlr_backend_state *state);
int wlr_drm_event(int fd, uint32_t mask, void *data);
+void wlr_drm_output_start_renderer(struct wlr_output_state *output);
+
#endif
diff --git a/include/session/interface.h b/include/session/interface.h
index a815718f..7345c4cf 100644
--- a/include/session/interface.h
+++ b/include/session/interface.h
@@ -1,18 +1,15 @@
#ifndef WLR_SESSION_INTERFACE_H
#define WLR_SESSION_INTERFACE_H
-struct wlr_session;
+#include <wlr/session.h>
struct session_interface {
- struct wlr_session *(*start)(void);
+ struct wlr_session *(*start)(struct wl_display *disp);
void (*finish)(struct wlr_session *session);
int (*open)(struct wlr_session *restrict session,
const char *restrict path);
void (*close)(struct wlr_session *session, int fd);
-};
-
-struct wlr_session {
- struct session_interface iface;
+ bool (*change_vt)(struct wlr_session *session, int vt);
};
extern const struct session_interface session_logind_iface;
diff --git a/include/wlr/session.h b/include/wlr/session.h
index cf04f1da..5f210f10 100644
--- a/include/wlr/session.h
+++ b/include/wlr/session.h
@@ -1,12 +1,29 @@
#ifndef WLR_SESSION_H
#define WLR_SESSION_H
-struct wlr_session;
+#include <wayland-server.h>
+#include <sys/types.h>
-struct wlr_session *wlr_session_start(void);
+struct session_interface;
+
+// Passed to the listeners of device_paused/resumed
+struct device_arg {
+ dev_t dev;
+ int fd; // Only for device_resumed
+};
+
+struct wlr_session {
+ const struct session_interface *iface;
+
+ struct wl_signal device_paused;
+ struct wl_signal device_resumed;
+};
+
+struct wlr_session *wlr_session_start(struct wl_display *disp);
void wlr_session_finish(struct wlr_session *session);
int wlr_session_open_file(struct wlr_session *restrict session,
const char *restrict path);
void wlr_session_close_file(struct wlr_session *session, int fd);
+bool wlr_session_change_vt(struct wlr_session *session, int vt);
#endif