diff --git a/libs/sysaudio/src/alsa.zig b/libs/sysaudio/src/alsa.zig index de6d6ae8..f85f134e 100644 --- a/libs/sysaudio/src/alsa.zig +++ b/libs/sysaudio/src/alsa.zig @@ -12,7 +12,7 @@ pub const Context = struct { watcher: ?Watcher, const Watcher = struct { - deviceChangeFn: main.DeviceChangeFn, + deviceChangeFn: main.Context.DeviceChangeFn, user_data: ?*anyopaque, thread: std.Thread, aborted: std.atomic.Atomic(bool), diff --git a/libs/sysaudio/src/jack.zig b/libs/sysaudio/src/jack.zig index 4895fce2..d793f802 100644 --- a/libs/sysaudio/src/jack.zig +++ b/libs/sysaudio/src/jack.zig @@ -11,7 +11,7 @@ pub const Context = struct { watcher: ?Watcher, const Watcher = struct { - deviceChangeFn: main.DeviceChangeFn, + deviceChangeFn: main.Context.DeviceChangeFn, user_data: ?*anyopaque, }; diff --git a/libs/sysaudio/src/main.zig b/libs/sysaudio/src/main.zig index fcfe58b1..bfec2b9c 100644 --- a/libs/sysaudio/src/main.zig +++ b/libs/sysaudio/src/main.zig @@ -3,21 +3,14 @@ const std = @import("std"); const util = @import("util.zig"); const backends = @import("backends.zig"); +pub const Backend = backends.Backend; pub const default_sample_rate = 44_100; // Hz pub const default_latency = 500 * std.time.us_per_ms; // μs pub const min_sample_rate = 8_000; // Hz pub const max_sample_rate = 5_644_800; // Hz -pub const Backend = backends.Backend; -pub const DeviceChangeFn = *const fn (self: ?*anyopaque) void; -pub const ConnectError = error{ - OutOfMemory, - AccessDenied, - SystemResources, - ConnectionRefused, -}; - pub const Context = struct { + pub const DeviceChangeFn = *const fn (self: ?*anyopaque) void; pub const Options = struct { app_name: [:0]const u8 = "Mach Game", deviceChangeFn: ?DeviceChangeFn = null, @@ -26,7 +19,16 @@ pub const Context = struct { data: backends.BackendContext, - pub fn init(comptime backend: ?Backend, allocator: std.mem.Allocator, options: Options) ConnectError!Context { + pub const InitError = error{ + OutOfMemory, + AccessDenied, + LibraryNotFound, + SymbolLookup, + SystemResources, + ConnectionRefused, + }; + + pub fn init(comptime backend: ?Backend, allocator: std.mem.Allocator, options: Options) InitError!Context { var data: backends.BackendContext = blk: { if (backend) |b| { break :blk try @typeInfo( diff --git a/libs/sysaudio/src/pipewire.zig b/libs/sysaudio/src/pipewire.zig index d43cbc44..477a04a5 100644 --- a/libs/sysaudio/src/pipewire.zig +++ b/libs/sysaudio/src/pipewire.zig @@ -38,7 +38,7 @@ pub const Context = struct { // watcher: ?Watcher, const Watcher = struct { - deviceChangeFn: main.DeviceChangeFn, + deviceChangeFn: main.Context.DeviceChangeFn, user_data: ?*anyopaque, thread: *c.pw_thread_loop, aborted: std.atomic.Atomic(bool), diff --git a/libs/sysaudio/src/wasapi.zig b/libs/sysaudio/src/wasapi.zig index 0e0ac449..c3e05ef4 100644 --- a/libs/sysaudio/src/wasapi.zig +++ b/libs/sysaudio/src/wasapi.zig @@ -12,7 +12,7 @@ pub const Context = struct { is_wine: bool, const Watcher = struct { - deviceChangeFn: main.DeviceChangeFn, + deviceChangeFn: main.Context.DeviceChangeFn, user_data: ?*anyopaque, notif_client: win32.IMMNotificationClient, };