Compare commits

..

2 commits

Author SHA1 Message Date
adf89eb360 update doc, remove todo on quicksave, rm showpath 2019-07-09 23:05:42 -03:00
8677e977ee add file "saving" to quicksave cmd 2019-07-09 23:04:05 -03:00
4 changed files with 28 additions and 9 deletions

View file

@ -36,14 +36,10 @@ Run the eg-amp plugin over the given slice of the file.
Run an echo filter on the given loaded file.
## TODO `quicksave`
## `quicksave`
Save the file on the same directory of the file specified by `load`, but
with a suffix on the filename (before extension).
Doing consecutive `quicksave`s will not overwrite any files, the suffixes will
just be different.
## TODO `showpath`
Print the current loaded path on the screen.

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.