--- linuxsampler/trunk/src/engines/common/InstrumentScriptVMFunctions.h 2019/08/23 13:33:21 3563 +++ linuxsampler/trunk/src/engines/common/InstrumentScriptVMFunctions.h 2019/08/24 09:18:57 3564 @@ -139,7 +139,7 @@ vmint maxAllowedArgs() const OVERRIDE { return 3; } bool acceptsArgType(vmint iArg, ExprType_t type) const OVERRIDE; bool acceptsArgUnitType(vmint iArg, StdUnit_t type) const OVERRIDE; - bool acceptsArgUnitPrefix(vmint iArg) const OVERRIDE; + bool acceptsArgUnitPrefix(vmint iArg, StdUnit_t type) const OVERRIDE; bool acceptsArgFinal(vmint iArg) const OVERRIDE; ExprType_t argType(vmint iArg) const OVERRIDE { return INT_EXPR; } VMFnResult* exec(VMFnArgs* args) OVERRIDE; @@ -153,7 +153,7 @@ vmint minRequiredArgs() const OVERRIDE { return 2; } vmint maxAllowedArgs() const OVERRIDE { return 3; } bool acceptsArgType(vmint iArg, ExprType_t type) const OVERRIDE; - bool acceptsArgUnitPrefix(vmint iArg) const OVERRIDE; + bool acceptsArgUnitPrefix(vmint iArg, StdUnit_t type) const OVERRIDE; bool acceptsArgFinal(vmint iArg) const OVERRIDE; ExprType_t argType(vmint iArg) const OVERRIDE { return INT_EXPR; } VMFnResult* exec(VMFnArgs* args) OVERRIDE; @@ -181,7 +181,7 @@ vmint maxAllowedArgs() const OVERRIDE { return 2; } bool acceptsArgType(vmint iArg, ExprType_t type) const OVERRIDE; bool acceptsArgUnitType(vmint iArg, StdUnit_t type) const OVERRIDE; - bool acceptsArgUnitPrefix(vmint iArg) const OVERRIDE; + bool acceptsArgUnitPrefix(vmint iArg, StdUnit_t type) const OVERRIDE; bool acceptsArgFinal(vmint iArg) const OVERRIDE; ExprType_t argType(vmint iArg) const OVERRIDE { return INT_EXPR; } VMFnResult* exec(VMFnArgs* args) OVERRIDE; @@ -209,7 +209,7 @@ vmint maxAllowedArgs() const OVERRIDE { return 2; } bool acceptsArgType(vmint iArg, ExprType_t type) const OVERRIDE; bool acceptsArgUnitType(vmint iArg, StdUnit_t type) const OVERRIDE; - bool acceptsArgUnitPrefix(vmint iArg) const OVERRIDE; + bool acceptsArgUnitPrefix(vmint iArg, StdUnit_t type) const OVERRIDE; bool acceptsArgFinal(vmint iArg) const OVERRIDE; ExprType_t argType(vmint iArg) const OVERRIDE { return INT_EXPR; } VMFnResult* exec(VMFnArgs* args) OVERRIDE; @@ -224,7 +224,7 @@ vmint maxAllowedArgs() const OVERRIDE { return 2; } bool acceptsArgType(vmint iArg, ExprType_t type) const OVERRIDE; bool acceptsArgUnitType(vmint iArg, StdUnit_t type) const OVERRIDE; - bool acceptsArgUnitPrefix(vmint iArg) const OVERRIDE; + bool acceptsArgUnitPrefix(vmint iArg, StdUnit_t type) const OVERRIDE; bool acceptsArgFinal(vmint iArg) const OVERRIDE; ExprType_t argType(vmint iArg) const OVERRIDE { return INT_EXPR; } VMFnResult* exec(VMFnArgs* args) OVERRIDE; @@ -239,7 +239,7 @@ vmint maxAllowedArgs() const OVERRIDE { return 2; } bool acceptsArgType(vmint iArg, ExprType_t type) const OVERRIDE; bool acceptsArgUnitType(vmint iArg, StdUnit_t type) const OVERRIDE; - bool acceptsArgUnitPrefix(vmint iArg) const OVERRIDE; + bool acceptsArgUnitPrefix(vmint iArg, StdUnit_t type) const OVERRIDE; bool acceptsArgFinal(vmint iArg) const OVERRIDE; ExprType_t argType(vmint iArg) const OVERRIDE { return INT_EXPR; } VMFnResult* exec(VMFnArgs* args) OVERRIDE; @@ -249,13 +249,13 @@ class VMChangeSynthParamFunction : public VMEmptyResultFunction { public: - VMChangeSynthParamFunction(InstrumentScriptVM* parent, bool acceptFinal, StdUnit_t unit) - : m_vm(parent), m_acceptFinal(acceptFinal), m_unit(unit) {} + VMChangeSynthParamFunction(InstrumentScriptVM* parent, bool acceptFinal, StdUnit_t unit, bool acceptUnitPrefix) + : m_vm(parent), m_acceptFinal(acceptFinal), m_acceptUnitPrefix(acceptUnitPrefix), m_unit(unit) {} vmint minRequiredArgs() const OVERRIDE { return 2; } vmint maxAllowedArgs() const OVERRIDE { return 2; } bool acceptsArgType(vmint iArg, ExprType_t type) const OVERRIDE; bool acceptsArgUnitType(vmint iArg, StdUnit_t type) const OVERRIDE; - bool acceptsArgUnitPrefix(vmint iArg) const OVERRIDE; + bool acceptsArgUnitPrefix(vmint iArg, StdUnit_t type) const OVERRIDE; bool acceptsArgFinal(vmint iArg) const OVERRIDE; ExprType_t argType(vmint iArg) const OVERRIDE { return INT_EXPR; } @@ -268,90 +268,91 @@ protected: InstrumentScriptVM* m_vm; const bool m_acceptFinal; + const bool m_acceptUnitPrefix; const StdUnit_t m_unit; }; class InstrumentScriptVMFunction_change_sustain : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_sustain(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_BEL) {} + InstrumentScriptVMFunction_change_sustain(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_BEL,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_cutoff_attack : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_cutoff_attack(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_SECOND) {} + InstrumentScriptVMFunction_change_cutoff_attack(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_SECOND,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_cutoff_decay : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_cutoff_decay(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_SECOND) {} + InstrumentScriptVMFunction_change_cutoff_decay(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_SECOND,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_cutoff_sustain : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_cutoff_sustain(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_BEL) {} + InstrumentScriptVMFunction_change_cutoff_sustain(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_BEL,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_cutoff_release : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_cutoff_release(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_SECOND) {} + InstrumentScriptVMFunction_change_cutoff_release(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_SECOND,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_amp_lfo_depth : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_amp_lfo_depth(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_NO_UNIT) {} + InstrumentScriptVMFunction_change_amp_lfo_depth(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_NO_UNIT,false) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_amp_lfo_freq : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_amp_lfo_freq(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_HERTZ) {} + InstrumentScriptVMFunction_change_amp_lfo_freq(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_HERTZ,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_cutoff_lfo_depth : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_cutoff_lfo_depth(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_NO_UNIT) {} + InstrumentScriptVMFunction_change_cutoff_lfo_depth(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_NO_UNIT,false) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_cutoff_lfo_freq : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_cutoff_lfo_freq(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_HERTZ) {} + InstrumentScriptVMFunction_change_cutoff_lfo_freq(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_HERTZ,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_pitch_lfo_depth : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_pitch_lfo_depth(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_NO_UNIT) {} + InstrumentScriptVMFunction_change_pitch_lfo_depth(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_NO_UNIT,false) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_pitch_lfo_freq : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_pitch_lfo_freq(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_HERTZ) {} + InstrumentScriptVMFunction_change_pitch_lfo_freq(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,true,VM_HERTZ,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_vol_time : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_vol_time(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,false,VM_SECOND) {} + InstrumentScriptVMFunction_change_vol_time(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,false,VM_SECOND,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_tune_time : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_tune_time(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,false,VM_SECOND) {} + InstrumentScriptVMFunction_change_tune_time(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,false,VM_SECOND,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; class InstrumentScriptVMFunction_change_pan_time : public VMChangeSynthParamFunction { public: - InstrumentScriptVMFunction_change_pan_time(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,false,VM_SECOND) {} + InstrumentScriptVMFunction_change_pan_time(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent,false,VM_SECOND,true) {} VMFnResult* exec(VMFnArgs* args) OVERRIDE; }; @@ -394,7 +395,7 @@ vmint maxAllowedArgs() const OVERRIDE { return 2; } bool acceptsArgType(vmint iArg, ExprType_t type) const OVERRIDE; bool acceptsArgUnitType(vmint iArg, StdUnit_t type) const OVERRIDE; - bool acceptsArgUnitPrefix(vmint iArg) const OVERRIDE; + bool acceptsArgUnitPrefix(vmint iArg, StdUnit_t type) const OVERRIDE; ExprType_t argType(vmint iArg) const OVERRIDE { return INT_EXPR; } VMFnResult* exec(VMFnArgs* args) OVERRIDE; protected: @@ -408,7 +409,7 @@ vmint maxAllowedArgs() const OVERRIDE { return 3; } bool acceptsArgType(vmint iArg, ExprType_t type) const OVERRIDE; bool acceptsArgUnitType(vmint iArg, StdUnit_t type) const OVERRIDE; - bool acceptsArgUnitPrefix(vmint iArg) const OVERRIDE; + bool acceptsArgUnitPrefix(vmint iArg, StdUnit_t type) const OVERRIDE; ExprType_t argType(vmint iArg) const OVERRIDE { return INT_EXPR; } VMFnResult* exec(VMFnArgs* args) OVERRIDE; protected: @@ -470,7 +471,7 @@ vmint maxAllowedArgs() const OVERRIDE { return 2; } bool acceptsArgType(vmint iArg, ExprType_t type) const OVERRIDE { return type == INT_EXPR; } bool acceptsArgUnitType(vmint iArg, StdUnit_t type) const OVERRIDE; - bool acceptsArgUnitPrefix(vmint iArg) const OVERRIDE; + bool acceptsArgUnitPrefix(vmint iArg, StdUnit_t type) const OVERRIDE; ExprType_t argType(vmint iArg) const OVERRIDE { return INT_EXPR; } VMFnResult* exec(VMFnArgs* args) OVERRIDE; protected: