mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-14 06:59:43 -05:00
backend/session: operate on wlr_device
Instead of operating on FDs in {open,close}_device, operate on
wlr_devices. This avoids the device lookup in wlr_session and allows
callers to have access to wlr_device fields.
For now, we use it to remove wlr_session_signal_add and replace it with
a more idiomatic wlr_session.events.change field. In the future, other
events will be added.
This commit is contained in:
parent
63df2bcbe6
commit
44a4792fd8
7 changed files with 69 additions and 68 deletions
|
|
@ -22,7 +22,8 @@
|
|||
* a DRM backend, other kinds of backends raise SIGABRT).
|
||||
*/
|
||||
struct wlr_backend *wlr_drm_backend_create(struct wl_display *display,
|
||||
struct wlr_session *session, int gpu_fd, struct wlr_backend *parent,
|
||||
struct wlr_session *session, struct wlr_device *dev,
|
||||
struct wlr_backend *parent,
|
||||
wlr_renderer_create_func_t create_renderer_func);
|
||||
|
||||
bool wlr_backend_is_drm(struct wlr_backend *backend);
|
||||
|
|
|
|||
|
|
@ -11,9 +11,11 @@ struct session_impl;
|
|||
struct wlr_device {
|
||||
int fd;
|
||||
dev_t dev;
|
||||
struct wl_signal signal;
|
||||
|
||||
struct wl_list link;
|
||||
|
||||
struct {
|
||||
struct wl_signal change;
|
||||
} events;
|
||||
};
|
||||
|
||||
struct wlr_session {
|
||||
|
|
@ -74,21 +76,21 @@ void wlr_session_destroy(struct wlr_session *session);
|
|||
*
|
||||
* Returns -errno on error.
|
||||
*/
|
||||
int wlr_session_open_file(struct wlr_session *session, const char *path);
|
||||
struct wlr_device *wlr_session_open_file(struct wlr_session *session,
|
||||
const char *path);
|
||||
|
||||
/*
|
||||
* Closes a file previously opened with wlr_session_open_file.
|
||||
*/
|
||||
void wlr_session_close_file(struct wlr_session *session, int fd);
|
||||
void wlr_session_close_file(struct wlr_session *session,
|
||||
struct wlr_device *device);
|
||||
|
||||
void wlr_session_signal_add(struct wlr_session *session, int fd,
|
||||
struct wl_listener *listener);
|
||||
/*
|
||||
* Changes the virtual terminal.
|
||||
*/
|
||||
bool wlr_session_change_vt(struct wlr_session *session, unsigned vt);
|
||||
|
||||
size_t wlr_session_find_gpus(struct wlr_session *session,
|
||||
size_t ret_len, int *ret);
|
||||
size_t ret_len, struct wlr_device **ret);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue