From 774fcf53a8388e714d40c4e3bfc7573b48d634c1 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Mon, 23 Mar 2020 12:22:48 +0100 Subject: Refactor output handling --- src/server.zig | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/server.zig') 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); + } }; -- cgit v1.2.3