1 |
/* |
/* |
2 |
* Copyright (c) 2014 - 2016 Christian Schoenebeck |
* Copyright (c) 2014 - 2017 Christian Schoenebeck |
3 |
* |
* |
4 |
* http://www.linuxsampler.org |
* http://www.linuxsampler.org |
5 |
* |
* |
12 |
|
|
13 |
#include "../../common/global.h" |
#include "../../common/global.h" |
14 |
#include "../../scriptvm/CoreVMFunctions.h" |
#include "../../scriptvm/CoreVMFunctions.h" |
15 |
|
#include "Note.h" |
16 |
|
|
17 |
namespace LinuxSampler { |
namespace LinuxSampler { |
18 |
|
|
228 |
InstrumentScriptVM* m_vm; |
InstrumentScriptVM* m_vm; |
229 |
}; |
}; |
230 |
|
|
231 |
|
class VMChangeSynthParamFunction : public VMEmptyResultFunction { |
232 |
|
public: |
233 |
|
VMChangeSynthParamFunction(InstrumentScriptVM* parent) : m_vm(parent) {} |
234 |
|
int minRequiredArgs() const { return 2; } |
235 |
|
int maxAllowedArgs() const { return 2; } |
236 |
|
bool acceptsArgType(int iArg, ExprType_t type) const; |
237 |
|
ExprType_t argType(int iArg) const { return INT_EXPR; } |
238 |
|
|
239 |
|
template<float NoteBase::_Override::*T_noteParam, int T_synthParam> |
240 |
|
VMFnResult* execTemplate(VMFnArgs* args, const char* functionName); |
241 |
|
protected: |
242 |
|
InstrumentScriptVM* m_vm; |
243 |
|
}; |
244 |
|
|
245 |
|
class InstrumentScriptVMFunction_change_amp_lfo_depth : public VMChangeSynthParamFunction { |
246 |
|
public: |
247 |
|
InstrumentScriptVMFunction_change_amp_lfo_depth(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent) {} |
248 |
|
VMFnResult* exec(VMFnArgs* args); |
249 |
|
}; |
250 |
|
|
251 |
|
class InstrumentScriptVMFunction_change_amp_lfo_freq : public VMChangeSynthParamFunction { |
252 |
|
public: |
253 |
|
InstrumentScriptVMFunction_change_amp_lfo_freq(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent) {} |
254 |
|
VMFnResult* exec(VMFnArgs* args); |
255 |
|
}; |
256 |
|
|
257 |
|
class InstrumentScriptVMFunction_change_pitch_lfo_depth : public VMChangeSynthParamFunction { |
258 |
|
public: |
259 |
|
InstrumentScriptVMFunction_change_pitch_lfo_depth(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent) {} |
260 |
|
VMFnResult* exec(VMFnArgs* args); |
261 |
|
}; |
262 |
|
|
263 |
|
class InstrumentScriptVMFunction_change_pitch_lfo_freq : public VMChangeSynthParamFunction { |
264 |
|
public: |
265 |
|
InstrumentScriptVMFunction_change_pitch_lfo_freq(InstrumentScriptVM* parent) : VMChangeSynthParamFunction(parent) {} |
266 |
|
VMFnResult* exec(VMFnArgs* args); |
267 |
|
}; |
268 |
|
|
269 |
class InstrumentScriptVMFunction_event_status : public VMIntResultFunction { |
class InstrumentScriptVMFunction_event_status : public VMIntResultFunction { |
270 |
public: |
public: |
271 |
InstrumentScriptVMFunction_event_status(InstrumentScriptVM* parent); |
InstrumentScriptVMFunction_event_status(InstrumentScriptVM* parent); |