sysaudio: display which audio-backend got selected (#1351)

This commit is contained in:
Pigeon_OwO 2025-03-15 19:19:59 +01:00 committed by GitHub
parent aae6ab3afa
commit fa3bea0eac
Failed to generate hash of commit

View file

@ -4,6 +4,8 @@ const util = @import("util.zig");
const backends = @import("backends.zig"); const backends = @import("backends.zig");
const conv = @import("conv.zig"); const conv = @import("conv.zig");
const log = std.log.scoped(.sysaudio);
pub const Backend = backends.Backend; pub const Backend = backends.Backend;
pub const Range = util.Range; pub const Range = util.Range;
@ -33,20 +35,25 @@ pub const Context = struct {
pub fn init(comptime backend: ?Backend, allocator: std.mem.Allocator, options: Options) InitError!Context { pub fn init(comptime backend: ?Backend, allocator: std.mem.Allocator, options: Options) InitError!Context {
const data: backends.Context = blk: { const data: backends.Context = blk: {
if (backend) |b| { if (backend) |b| {
break :blk try @typeInfo( const d = try @typeInfo(
std.meta.fieldInfo(backends.Context, b).type, std.meta.fieldInfo(backends.Context, b).type,
).pointer.child.init(allocator, options); ).pointer.child.init(allocator, options);
log.info("Backend selected: {s}", .{b.name});
break :blk d;
} else { } else {
inline for (std.meta.fields(Backend), 0..) |b, i| { inline for (std.meta.fields(Backend), 0..) |b, i| {
if (@typeInfo( if (@typeInfo(
std.meta.fieldInfo(backends.Context, @as(Backend, @enumFromInt(b.value))).type, std.meta.fieldInfo(backends.Context, @as(Backend, @enumFromInt(b.value))).type,
).pointer.child.init(allocator, options)) |d| { ).pointer.child.init(allocator, options)) |d| {
log.info("Backend selected: {s}", .{b.name});
break :blk d; break :blk d;
} else |err| { } else |err| {
if (i == std.meta.fields(Backend).len - 1) if (i == std.meta.fields(Backend).len - 1) {
log.info("Init failed of Backend: {s}", .{b.name});
return err; return err;
} }
} }
}
unreachable; unreachable;
} }
}; };