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; load :0;
amp 3 1 10; amp 3 1 20;
# echo 3 0 1 0.2; # echo 3 0 1 0.2;
quicksave; quicksave;

View file

@ -109,9 +109,16 @@ fn mkSfInfo() c.SF_INFO {
pub const Image = struct { pub const Image = struct {
allocator: *std.mem.Allocator, allocator: *std.mem.Allocator,
/// Pointer to the underlying libsndfile's SNDFILE struct.
sndfile: *c.SNDFILE, sndfile: *c.SNDFILE,
/// The original image file path.
path: []const u8, path: []const u8,
/// Represents the current path being worked on.
curpath: []const u8,
/// Open a BMP file. /// Open a BMP file.
pub fn open(allocator: *std.mem.Allocator, path: []const u8) !*Image { pub fn open(allocator: *std.mem.Allocator, path: []const u8) !*Image {
var in_fmt = mkSfInfo(); var in_fmt = mkSfInfo();
@ -123,6 +130,7 @@ pub const Image = struct {
.allocator = allocator, .allocator = allocator,
.sndfile = sndfile, .sndfile = sndfile,
.path = path, .path = path,
.curpath = path,
}; };
return image; 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); const out_path = try std.fmt.allocPrint(
std.debug.warn("out path: {}\n", out_path); 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. /// Run the http://lv2plug.in/plugins/eg-amp plugin over the file.