summary refs log tree commit diff
path: root/src/al.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/al.zig')
-rw-r--r--src/al.zig34
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,
             },