diff options
author | Scott Anderson <ascent12@hotmail.com> | 2017-05-03 14:11:22 +1200 |
---|---|---|
committer | Scott Anderson <ascent12@hotmail.com> | 2017-05-03 14:11:22 +1200 |
commit | 762ac7f4c0168bf2ce536d94b3b44cb95939d769 (patch) | |
tree | c650e2e8dc13fc24695a4d95ca41f2f18df0b0aa /session/session.c | |
parent | e446a5300b742dd8a7f403bf96d1137e91ba1b11 (diff) |
New session interface.
Diffstat (limited to 'session/session.c')
-rw-r--r-- | session/session.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/session/session.c b/session/session.c new file mode 100644 index 00000000..88391e6e --- /dev/null +++ b/session/session.c @@ -0,0 +1,38 @@ +#include <stddef.h> + +#include <wlr/session.h> +#include "session/interface.h" + +static const struct session_interface *ifaces[] = { +#ifdef HAS_SYSTEMD + &session_logind_iface, +#endif + NULL, +}; + +struct wlr_session *wlr_session_start(void) { + const struct session_interface **iter; + + for (iter = ifaces; *iter; ++iter) { + struct wlr_session *session = (*iter)->start(); + if (session) { + return session; + } + } + + return NULL; +} + +void wlr_session_finish(struct wlr_session *session) { + session->iface.finish(session); +}; + +int wlr_session_open_file(struct wlr_session *restrict session, + const char *restrict path) { + + return session->iface.open(session, path); +} + +void wlr_session_close_file(struct wlr_session *session, int fd) { + session->iface.close(session, fd); +} |