enhance embed custom plugin

- seek to 0 on setup
 - ignore and copy original bytes if we reached end of audio file
This commit is contained in:
Luna 2019-10-22 19:16:09 -03:00
parent c8b5327634
commit 430677fc07
2 changed files with 4 additions and 2 deletions

View file

@ -164,6 +164,8 @@ pub const Embed = struct {
&in_fmt,
);
image.sseek(self.sndfile, 0);
self.buf = try self.allocator.alloc(f32, @intCast(usize, in_fmt.channels));
}
@ -173,7 +175,7 @@ pub const Embed = struct {
const read_bytes = c.sf_readf_float(self.sndfile, self.buf.ptr, 1);
if (read_bytes == 0) {
std.debug.warn("WARN! reached EOF for embed\n");
bufs.out[0] = bufs.in[0];
return;
}

View file

@ -65,7 +65,7 @@ pub fn swrite(file: *c.SNDFILE, buf: [*]f32, frames: i64) !void {
}
}
fn sseek(file: *c.SNDFILE, offset: usize) void {
pub fn sseek(file: *c.SNDFILE, offset: usize) void {
const offset_i64 = @intCast(i64, offset);
const frames = c.sf_seek(file, offset_i64, c.SEEK_SET);
const frames_current = c.sf_seek(file, 0, c.SEEK_CUR);