aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/al.zig34
-rw-r--r--src/alc.zig8
-rw-r--r--src/sf.zig14
-rw-r--r--src/zeal.zig19
4 files changed, 33 insertions, 42 deletions
diff --git a/src/al.zig b/src/al.zig
index 9e52786..ccabc7e 100644
--- a/src/al.zig
+++ b/src/al.zig
@@ -1,5 +1,5 @@
// OpenAL wrapper
-// Copyright (C) 2021-2022 Nguyễn Gia Phong
+// Copyright (C) 2021-2023 Nguyễn Gia Phong
//
// This file is part of zeal.
//
@@ -22,7 +22,7 @@ const meta = @import("std").meta;
const c = @import("cimport.zig");
-pub const Error = error {
+pub const Error = error{
/// Bad name (ID) passed to an OpenAL function.
InvalidName,
/// Invalid enum parameter passed to an OpenAL function.
@@ -55,7 +55,7 @@ pub const listener = struct {
/// Set a property for the listener.
pub fn set(property: Property, value: anytype) Error!void {
- const param = @enumToInt(property);
+ const param = @intFromEnum(property);
const T = @TypeOf(value);
switch (T) {
f32 => c.alListenerf(param, value),
@@ -64,7 +64,7 @@ pub const listener = struct {
f32 => c.alListenerfv(param, value[0..]),
i32 => c.alListeneriv(param, value[0..]),
else => unreachable,
- }
+ },
}
switch (c.alGetError()) {
@@ -116,23 +116,15 @@ pub const buffer = struct {
/// Fill a buffer with audio data.
pub fn fill(reference: u32, data: Data, freq: i32) Error!void {
- const format = switch (data) {
+ c.alBufferData(reference, switch (data) {
.mono8 => c.AL_FORMAT_MONO8,
.mono16 => c.AL_FORMAT_MONO16,
.stereo8 => c.AL_FORMAT_STEREO8,
.stereo16 => c.AL_FORMAT_STEREO16,
- };
-
- switch (data) {
- .mono8, .stereo8 => |slice| {
- const size = @intCast(c_int, slice.len);
- c.alBufferData(reference, format, slice.ptr, size, freq);
- },
- .mono16, .stereo16 => |slice| {
- const size = @intCast(c_int, slice.len) * 2;
- c.alBufferData(reference, format, slice.ptr, size, freq);
- },
- }
+ }, switch (data) { else => |slice| slice.ptr }, switch (data) {
+ .mono8, .stereo8 => |slice| @intCast(slice.len),
+ .mono16, .stereo16 => |slice| @intCast(slice.len * 2),
+ }, freq);
switch (c.alGetError()) {
c.AL_NO_ERROR => {},
@@ -193,13 +185,13 @@ pub const source = struct {
/// Set a property for the source.
pub fn set(reference: u32, property: Property, value: anytype) Error!void {
- const param = @enumToInt(property);
+ const param = @intFromEnum(property);
const T = @TypeOf(value);
switch (T) {
f32 => c.alSourcef(reference, param, value),
i32 => c.alSourcei(reference, param, value),
else => switch (@typeInfo(T)) {
- .Enum => c.alSourcei(reference, param, @enumToInt(value)),
+ .Enum => c.alSourcei(reference, param, @intFromEnum(value)),
else => switch (Child(T)) {
f32 => c.alSourcefv(reference, param, value[0..]),
i32 => c.alSourceiv(reference, param, value[0..]),
@@ -220,7 +212,7 @@ pub const source = struct {
/// Get a scalar property from the source.
pub fn get(comptime T: type, reference: u32, property: Property) Error!T {
- const param = @enumToInt(property);
+ const param = @intFromEnum(property);
var value: T = undefined;
switch (T) {
f32 => c.alGetSourcef(reference, param, &value),
@@ -229,7 +221,7 @@ pub const source = struct {
.Enum => {
var raw: i32 = undefined;
c.alGetSourcei(reference, param, &raw);
- value = @intToEnum(T, raw);
+ value = @enumFromInt(raw);
},
else => unreachable,
},
diff --git a/src/alc.zig b/src/alc.zig
index 0b6439a..3db5440 100644
--- a/src/alc.zig
+++ b/src/alc.zig
@@ -1,5 +1,5 @@
// Audio Library Context wrapper
-// Copyright (C) 2021-2022 Nguyễn Gia Phong
+// Copyright (C) 2021-2023 Nguyễn Gia Phong
//
// This file is part of zeal.
//
@@ -32,7 +32,7 @@ pub const Device = c.ALCdevice;
/// Opaque context handle.
pub const Context = c.ALCcontext;
-pub const Error = error {
+pub const Error = error{
/// Invalid device handle.
InvalidDevice,
/// Invalid context handle.
@@ -265,11 +265,11 @@ fn getInfo(comptime T: type, device: ?*Device, attr: Enum) !T {
else => unreachable,
},
i32 => return (try getInfo([1]i32, device, attr))[0],
- [:0]const u8 => span(c.alcGetString(device, @enumToInt(attr))),
+ [:0]const u8 => span(c.alcGetString(device, @intFromEnum(attr))),
else => array: {
assert(@typeInfo(T).Array.child == i32);
var data: T = undefined;
- c.alcGetIntegerv(device, @enumToInt(attr), data.len, &data);
+ c.alcGetIntegerv(device, @intFromEnum(attr), data.len, &data);
break :array data;
},
};
diff --git a/src/sf.zig b/src/sf.zig
index bce6dcc..1d8f1dd 100644
--- a/src/sf.zig
+++ b/src/sf.zig
@@ -1,5 +1,5 @@
// libsndfile wrapper
-// Copyright (C) 2021-2022 Nguyễn Gia Phong
+// Copyright (C) 2021-2023 Nguyễn Gia Phong
//
// This file is part of zeal.
//
@@ -29,7 +29,7 @@ pub const Mode = enum {
read_write,
};
-pub const Error = Allocator.Error || error {
+pub const Error = Allocator.Error || error{
UnrecognizedFormat,
SystemError,
MalformedFile,
@@ -58,7 +58,7 @@ pub const SndFile = struct {
const pimpl = c.sf_open(path.ptr, c_mode, &info);
_ = c.sf_command(pimpl, c.SFC_SET_SCALE_FLOAT_INT_READ,
null, c.SF_TRUE);
- return SndFile {
+ return SndFile{
.pimpl = pimpl orelse return switch (c.sf_error(null)) {
c.SF_ERR_UNRECOGNISED_FORMAT => Error.UnrecognizedFormat,
c.SF_ERR_SYSTEM => Error.SystemError,
@@ -66,7 +66,7 @@ pub const SndFile = struct {
c.SF_ERR_UNSUPPORTED_ENCODING => Error.UnsupportedEncoding,
else => unreachable,
},
- .frames = @intCast(usize, info.frames),
+ .frames = @intCast(info.frames),
.sample_rate = info.samplerate,
.channels = info.channels,
.format = info.format,
@@ -79,11 +79,11 @@ pub const SndFile = struct {
/// The returned memory is managed by the caller.
pub fn read(self: SndFile, allocator: Allocator,
frames: usize) Error![]const i16 {
- const items = frames * @intCast(usize, self.channels);
+ const items = frames * @as(usize, @intCast(self.channels));
const memory = try allocator.alloc(i16, items);
errdefer allocator.free(memory);
- const n = c.sf_read_short(self.pimpl, memory.ptr, @intCast(i64, items));
- return try allocator.realloc(memory, @intCast(usize, n));
+ const n = c.sf_read_short(self.pimpl, memory.ptr, @intCast(items));
+ return try allocator.realloc(memory, @intCast(n));
}
/// Read the entire file. The returned memory is managed by the caller.
diff --git a/src/zeal.zig b/src/zeal.zig
index e5984bf..3be59fb 100644
--- a/src/zeal.zig
+++ b/src/zeal.zig
@@ -23,7 +23,7 @@ const alc = @import("alc.zig");
const sf = @import("sf.zig");
const std = @import("std");
-pub const Error = al.Error || error {
+pub const Error = al.Error || error{
UncurrentContext,
};
@@ -74,8 +74,8 @@ pub const Context = struct {
stereo_sources: ?i32 = null,
/// Maximum number of auxiliary source sends.
max_auxiliary_sends: ?i32 = null,
- /// Enabling HRTF.
+ /// Enabling HRTF.
hrtf: ?alc.Logical = null,
/// The HRTF to be used.
hrtf_id: ?i32 = null,
@@ -90,11 +90,11 @@ pub const Context = struct {
var attr_list = [_]i32{ 0 } ** (fields.len * 2 + 1);
var i: u8 = 0;
inline for (fields) |f| if (@field(attributes, f.name)) |v| {
- attr_list[i] = @enumToInt(@field(alc.Enum, f.name));
- attr_list[i + 1] = if (@TypeOf(v) == i32) v else @enumToInt(v);
+ attr_list[i] = @intFromEnum(@field(alc.Enum, f.name));
+ attr_list[i + 1] = if (@TypeOf(v) == i32) v else @intFromEnum(v);
i += 2;
};
- return Context {
+ return Context{
.pimpl = try alc.createContext(device.pimpl, attr_list[0..i:0]),
.device = device,
};
@@ -111,9 +111,9 @@ pub const Context = struct {
pub fn getCurrent() ?alc.Error!Context {
if (alc.getCurrentContext()) |pimpl|
- return Context {
+ return Context{
.pimpl = pimpl,
- .device = Device { .pimpl = try alc.getContextsDevice(pimpl) },
+ .device = Device{ .pimpl = try alc.getContextsDevice(pimpl) },
};
return null;
}
@@ -153,7 +153,7 @@ pub const Audio = struct {
const sound = try SndFile.open(path, sf.Mode.read);
defer sound.close();
const data = try sound.readAll(allocator);
- return Audio {
+ return Audio{
.allocator = allocator,
.data = switch (sound.channels) {
1 => al.Data{ .mono16 = data },
@@ -201,8 +201,7 @@ pub const Source = struct {
}
pub fn bind(self: Source, buffer: Buffer) Error!void {
- try al.source.set(self.reference, .buffer,
- @intCast(i32, buffer.reference));
+ try al.source.set(self.reference, .buffer, @intCast(buffer.reference));
}
/// Specify if the source always has 3D spatialization features (true),