aboutsummaryrefslogtreecommitdiff
path: root/src/server.zig
diff options
context:
space:
mode:
authorIsaac Freund <ifreund@ifreund.xyz>2020-03-23 12:22:48 +0100
committerIsaac Freund <ifreund@ifreund.xyz>2020-03-23 12:22:48 +0100
commit774fcf53a8388e714d40c4e3bfc7573b48d634c1 (patch)
tree1b3800c44c133d6884fe9d091302690674b17711 /src/server.zig
parentf423f5317bfa46fe8a7a0149240ea5fe49bd5f89 (diff)
downloadriver-774fcf53a8388e714d40c4e3bfc7573b48d634c1.tar.gz
river-774fcf53a8388e714d40c4e3bfc7573b48d634c1.tar.xz
Refactor output handling
Diffstat (limited to 'src/server.zig')
-rw-r--r--src/server.zig10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/server.zig b/src/server.zig
index d1e0002..54d3efe 100644
--- a/src/server.zig
+++ b/src/server.zig
@@ -69,7 +69,7 @@ pub const Server = struct {
/// Create the socket, set WAYLAND_DISPLAY, and start the backend
pub fn start(self: @This()) !void {
// Add a Unix socket to the Wayland display.
- const socket = c.wl_display_add_socket_auto(self.wl_display) orelse;
+ const socket = c.wl_display_add_socket_auto(self.wl_display) orelse
return error.CantAddSocket;
// Start the backend. This will enumerate outputs and inputs, become the DRM
@@ -114,4 +114,12 @@ pub const Server = struct {
}
return true;
}
+
+ fn handle_new_output(listener: [*c]c.wl_listener, data: ?*c_void) callconv(.C) void {
+ var server = @fieldParentPtr(Server, "new_output", listener);
+ var wlr_output = @ptrCast(*c.wlr_output, @alignCast(@alignOf(*c.wlr_output), data));
+
+ // TODO: Handle failure
+ server.outputs.append(Output.init(server, wlr_output) orelse return);
+ }
};