diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/backend/drm/backend.h | 4 | ||||
-rw-r--r-- | include/backend/drm/drm.h | 2 | ||||
-rw-r--r-- | include/session/interface.h | 9 | ||||
-rw-r--r-- | include/wlr/session.h | 21 |
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 |