sysaudio: rewrite in zig
removes libsoundio dependency
This commit is contained in:
parent
8aa2c97079
commit
0f3e28bc2a
27 changed files with 4714 additions and 1344 deletions
56
libs/sysaudio/src/util.zig
Normal file
56
libs/sysaudio/src/util.zig
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
const std = @import("std");
|
||||
const main = @import("main.zig");
|
||||
|
||||
pub const DevicesInfo = struct {
|
||||
list: std.ArrayListUnmanaged(main.Device),
|
||||
default_output: ?usize,
|
||||
default_input: ?usize,
|
||||
|
||||
pub fn init() DevicesInfo {
|
||||
return .{
|
||||
.list = .{},
|
||||
.default_output = null,
|
||||
.default_input = null,
|
||||
};
|
||||
}
|
||||
|
||||
pub fn clear(self: *DevicesInfo, allocator: std.mem.Allocator) void {
|
||||
self.default_output = null;
|
||||
self.default_input = null;
|
||||
self.list.clearAndFree(allocator);
|
||||
}
|
||||
|
||||
pub fn get(self: DevicesInfo, i: usize) main.Device {
|
||||
return self.list.items[i];
|
||||
}
|
||||
|
||||
pub fn default(self: DevicesInfo, mode: main.Device.Mode) ?main.Device {
|
||||
const index = switch (mode) {
|
||||
.playback => self.default_output,
|
||||
.capture => self.default_input,
|
||||
} orelse return null;
|
||||
return self.get(index);
|
||||
}
|
||||
|
||||
pub fn setDefault(self: *DevicesInfo, mode: main.Device.Mode, i: usize) void {
|
||||
switch (mode) {
|
||||
.playback => self.default_output = i,
|
||||
.capture => self.default_input = i,
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
pub fn Range(comptime T: type) type {
|
||||
return struct {
|
||||
const Self = @This();
|
||||
|
||||
min: T,
|
||||
max: T,
|
||||
|
||||
pub fn clamp(self: Self, val: T) T {
|
||||
return std.math.clamp(val, self.min, self.max);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
pub fn doNothing() callconv(.C) void {}
|
||||
Loading…
Add table
Add a link
Reference in a new issue