add file "saving" to quicksave cmd

This commit is contained in:
Luna 2019-07-09 23:04:05 -03:00
parent fe8ef6b25c
commit 8677e977ee
3 changed files with 27 additions and 4 deletions

View file

@ -1,4 +1,4 @@
load :0;
amp 3 1 10;
amp 3 1 20;
# echo 3 0 1 0.2;
quicksave;

View file

@ -109,9 +109,16 @@ fn mkSfInfo() c.SF_INFO {
pub const Image = struct {
allocator: *std.mem.Allocator,
/// Pointer to the underlying libsndfile's SNDFILE struct.
sndfile: *c.SNDFILE,
/// The original image file path.
path: []const u8,
/// Represents the current path being worked on.
curpath: []const u8,
/// Open a BMP file.
pub fn open(allocator: *std.mem.Allocator, path: []const u8) !*Image {
var in_fmt = mkSfInfo();
@ -123,6 +130,7 @@ pub const Image = struct {
.allocator = allocator,
.sndfile = sndfile,
.path = path,
.curpath = path,
};
return image;
@ -251,6 +259,13 @@ pub const Image = struct {
}
}
_ = c.sf_close(out_file);
_ = c.sf_close(self.sndfile);
self.sndfile = out_file;
self.curpath = tmpnam;
}
pub fn saveTo(self: *Image, out_path: []const u8) !void {
std.debug.warn("saved to '{}'\n", out_path);
try std.fs.copyFile(self.curpath, out_path);
}
};

View file

@ -136,8 +136,16 @@ pub const Runner = struct {
}
}
const out_path = try std.fmt.allocPrint(self.allocator, "{}_g{}{}", starts_with, max + 1, extension);
std.debug.warn("out path: {}\n", out_path);
const out_path = try std.fmt.allocPrint(
self.allocator,
"{}/{}{}{}",
dirname,
starts_with,
max + 1,
extension,
);
try image.saveTo(out_path);
}
/// Run the http://lv2plug.in/plugins/eg-amp plugin over the file.