add implicit arg index for Command helper funcs

This commit is contained in:
Luna 2019-07-10 20:46:22 -03:00
parent c743681515
commit 3a8f84a3b2
3 changed files with 37 additions and 34 deletions

View file

@ -1,3 +1,3 @@
load :0;
highpass 3 1 1000 0 0;
highpass 3 1 7800 0 0;
quicksave;

View file

@ -27,6 +27,7 @@ pub const CommandType = enum {
pub const Command = struct {
command: CommandType,
args: ArgList,
cur_idx: usize = 0,
pub fn print(self: *const Command) void {
std.debug.warn("cmd:{}\n", self.command);
@ -48,7 +49,8 @@ pub const Command = struct {
return try std.fmt.parseInt(usize, arg, 10);
}
pub fn consumePosition(self: *const Command) !plugin.Position {
pub fn consumePosition(self: *Command) !plugin.Position {
self.cur_idx = 2;
return plugin.Position{
.split = try self.usizeArgAt(0),
.index = try self.usizeArgAt(1),
@ -88,12 +90,13 @@ pub const Command = struct {
}
pub fn appendParam(
self: *const Command,
self: *Command,
params: *plugin.ParamList,
symbol: []const u8,
idx: usize,
) !void {
var val = try self.floatArgAt(idx);
var val = try self.floatArgAt(self.cur_idx);
self.cur_idx += 1;
try params.append(plugin.Param{
.sym = symbol,
.value = val,

View file

@ -224,22 +224,22 @@ pub const Runner = struct {
.Amp => blk: {
const pos = try cmd.consumePosition();
try cmd.appendParam(&params, "gain", 2);
try cmd.appendParam(&params, "gain");
try self.ampCmd(pos, params);
},
.RFlanger => blk: {
const pos = try cmd.consumePosition();
try cmd.appendParam(&params, "delay_depth_avg", 2);
try cmd.appendParam(&params, "law_freq", 3);
try cmd.appendParam(&params, "delay_depth_avg");
try cmd.appendParam(&params, "law_freq");
try self.rFlangerCmd(pos, params);
},
.Eq => blk: {
const pos = try cmd.consumePosition();
try cmd.appendParam(&params, "lo", 2);
try cmd.appendParam(&params, "mid", 3);
try cmd.appendParam(&params, "hi", 4);
try cmd.appendParam(&params, "lo");
try cmd.appendParam(&params, "mid");
try cmd.appendParam(&params, "hi");
try self.eqCmd(pos, params);
},
@ -247,10 +247,10 @@ pub const Runner = struct {
.Phaser => blk: {
const pos = try cmd.consumePosition();
try cmd.appendParam(&params, "lfo_rate", 2);
try cmd.appendParam(&params, "lfo_depth", 3);
try cmd.appendParam(&params, "fb", 4);
try cmd.appendParam(&params, "spread", 5);
try cmd.appendParam(&params, "lfo_rate");
try cmd.appendParam(&params, "lfo_depth");
try cmd.appendParam(&params, "fb");
try cmd.appendParam(&params, "spread");
try self.phaserCmd(pos, params);
},
@ -264,34 +264,34 @@ pub const Runner = struct {
.Chorus => blk: {
const pos = try cmd.consumePosition();
try cmd.appendParam(&params, "voices", 2);
try cmd.appendParam(&params, "delay_base", 3);
try cmd.appendParam(&params, "voice_spread", 4);
try cmd.appendParam(&params, "detune", 5);
try cmd.appendParam(&params, "law_freq", 6);
try cmd.appendParam(&params, "attendb", 7);
try cmd.appendParam(&params, "voices");
try cmd.appendParam(&params, "delay_base");
try cmd.appendParam(&params, "voice_spread");
try cmd.appendParam(&params, "detune");
try cmd.appendParam(&params, "law_freq");
try cmd.appendParam(&params, "attendb");
try self.chorusCmd(pos, params);
},
.PitchScaler => blk: {
const pos = try cmd.consumePosition();
try cmd.appendParam(&params, "mult", 2);
try cmd.appendParam(&params, "mult");
try self.pitchScalerCmd(pos, params);
},
.Reverb => blk: {
const pos = try cmd.consumePosition();
try cmd.appendParam(&params, "roomLength", 2);
try cmd.appendParam(&params, "roomHeight", 3);
try cmd.appendParam(&params, "sourceLR", 4);
try cmd.appendParam(&params, "sourceFB", 5);
try cmd.appendParam(&params, "listLR", 6);
try cmd.appendParam(&params, "listFB", 7);
try cmd.appendParam(&params, "hpf", 8);
try cmd.appendParam(&params, "warmth", 9);
try cmd.appendParam(&params, "diffusion", 10);
try cmd.appendParam(&params, "roomLength");
try cmd.appendParam(&params, "roomHeight");
try cmd.appendParam(&params, "sourceLR");
try cmd.appendParam(&params, "sourceFB");
try cmd.appendParam(&params, "listLR");
try cmd.appendParam(&params, "listFB");
try cmd.appendParam(&params, "hpf");
try cmd.appendParam(&params, "warmth");
try cmd.appendParam(&params, "diffusion");
try self.reverbCmd(pos, params);
},
@ -299,9 +299,9 @@ pub const Runner = struct {
.Highpass => blk: {
const pos = try cmd.consumePosition();
try cmd.appendParam(&params, "freq", 2);
try cmd.appendParam(&params, "gain", 3);
try cmd.appendParam(&params, "noClip", 4);
try cmd.appendParam(&params, "freq");
try cmd.appendParam(&params, "gain");
try cmd.appendParam(&params, "noClip");
try self.highpassCmd(pos, params);
},