diff options
Diffstat (limited to 'src/al.zig')
-rw-r--r-- | src/al.zig | 34 |
1 files changed, 13 insertions, 21 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, }, |