From 7bc7caaec4d54000e6114612f81ca9cd80332d59 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Sat, 20 Aug 2022 11:41:15 -0700 Subject: [PATCH] sysaudio: improve compatibility with self-hosted compiler Signed-off-by: Stephen Gutekanst --- sysaudio/soundio/InStream.zig | 5 ++++- sysaudio/soundio/OutStream.zig | 5 ++++- sysaudio/src/soundio.zig | 6 +++++- sysaudio/src/webaudio.zig | 5 ++++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/sysaudio/soundio/InStream.zig b/sysaudio/soundio/InStream.zig index f322068f..89dedf3d 100644 --- a/sysaudio/soundio/InStream.zig +++ b/sysaudio/soundio/InStream.zig @@ -6,7 +6,10 @@ const ChannelLayout = @import("ChannelLayout.zig"); const InStream = @This(); -pub const WriteCallback = fn (stream: ?[*]c.SoundIoInStream, frame_count_min: c_int, frame_count_max: c_int) callconv(.C) void; +pub const WriteCallback = if (@import("builtin").zig_backend == .stage1) + fn (stream: ?[*]c.SoundIoInStream, frame_count_min: c_int, frame_count_max: c_int) callconv(.C) void +else + *const fn (stream: ?[*]c.SoundIoInStream, frame_count_min: c_int, frame_count_max: c_int) callconv(.C) void; handle: *c.SoundIoInStream, diff --git a/sysaudio/soundio/OutStream.zig b/sysaudio/soundio/OutStream.zig index e47c94d5..0c140910 100644 --- a/sysaudio/soundio/OutStream.zig +++ b/sysaudio/soundio/OutStream.zig @@ -6,7 +6,10 @@ const ChannelLayout = @import("ChannelLayout.zig"); const OutStream = @This(); -pub const WriteCallback = fn (stream: ?[*]c.SoundIoOutStream, frame_count_min: c_int, frame_count_max: c_int) callconv(.C) void; +pub const WriteCallback = if (@import("builtin").zig_backend == .stage1) + fn (stream: ?[*]c.SoundIoOutStream, frame_count_min: c_int, frame_count_max: c_int) callconv(.C) void +else + *const fn (stream: ?[*]c.SoundIoOutStream, frame_count_min: c_int, frame_count_max: c_int) callconv(.C) void; handle: *c.SoundIoOutStream, diff --git a/sysaudio/src/soundio.zig b/sysaudio/src/soundio.zig index 41a5ffb7..876895ab 100644 --- a/sysaudio/src/soundio.zig +++ b/sysaudio/src/soundio.zig @@ -14,7 +14,11 @@ const SoundIoStream = union(Mode) { const Audio = @This(); -pub const DataCallback = fn (device: Device, frame_count: u32) void; +pub const DataCallback = if (@import("builtin").zig_backend == .stage1) + fn (device: Device, frame_count: u32) void +else + fn (device: Device, frame_count: u32) void; + pub const Device = struct { handle: SoundIoStream, data_callback: ?DataCallback = null, diff --git a/sysaudio/src/webaudio.zig b/sysaudio/src/webaudio.zig index 73ab1a1d..5a7f1d41 100644 --- a/sysaudio/src/webaudio.zig +++ b/sysaudio/src/webaudio.zig @@ -5,7 +5,10 @@ const js = @import("sysjs"); const Audio = @This(); -pub const DataCallback = fn (device: *Device, user_data: ?*anyopaque, sample: *f32) void; +pub const DataCallback = if (@import("builtin").zig_backend == .stage1) + fn (device: *Device, user_data: ?*anyopaque, sample: *f32) void +else + *const fn (device: *Device, user_data: ?*anyopaque, sample: *f32) void; pub const Device = struct { context: js.Object,