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 |
* |
* |
64 |
#define EVENT_STATUS_INACTIVE 0 |
#define EVENT_STATUS_INACTIVE 0 |
65 |
#define EVENT_STATUS_NOTE_QUEUE 1 |
#define EVENT_STATUS_NOTE_QUEUE 1 |
66 |
|
|
67 |
|
enum { |
68 |
|
EVENT_PAR_NOTE = 1, |
69 |
|
EVENT_PAR_VELOCITY, |
70 |
|
EVENT_PAR_VOLUME, |
71 |
|
EVENT_PAR_TUNE, |
72 |
|
EVENT_PAR_0 = 1024, |
73 |
|
EVENT_PAR_1, |
74 |
|
EVENT_PAR_2, |
75 |
|
EVENT_PAR_3, |
76 |
|
}; |
77 |
|
|
78 |
namespace LinuxSampler { |
namespace LinuxSampler { |
79 |
|
|
80 |
class AbstractEngineChannel; |
class AbstractEngineChannel; |
81 |
class InstrumentScript; |
struct InstrumentScript; |
82 |
|
|
83 |
/** @brief Convert IDs between script scope and engine internal scope. |
/** @brief Convert IDs between script scope and engine internal scope. |
84 |
* |
* |
258 |
protected: |
protected: |
259 |
ScriptEvent* m_event; ///< The event currently executed by exec(). |
ScriptEvent* m_event; ///< The event currently executed by exec(). |
260 |
|
|
261 |
// buil-in script variables |
// built-in script variables |
262 |
VMInt8Array m_CC; |
VMInt8Array m_CC; |
263 |
VMInt8RelPtr m_CC_NUM; |
VMInt8RelPtr m_CC_NUM; |
264 |
VMIntRelPtr m_EVENT_ID; |
VMIntRelPtr m_EVENT_ID; |
270 |
VMIntRelPtr m_NI_CALLBACK_TYPE; |
VMIntRelPtr m_NI_CALLBACK_TYPE; |
271 |
VMIntRelPtr m_NKSP_IGNORE_WAIT; |
VMIntRelPtr m_NKSP_IGNORE_WAIT; |
272 |
|
|
273 |
// buil-in script functions |
// built-in script functions |
274 |
InstrumentScriptVMFunction_play_note m_fnPlayNote; |
InstrumentScriptVMFunction_play_note m_fnPlayNote; |
275 |
InstrumentScriptVMFunction_set_controller m_fnSetController; |
InstrumentScriptVMFunction_set_controller m_fnSetController; |
276 |
InstrumentScriptVMFunction_ignore_event m_fnIgnoreEvent; |
InstrumentScriptVMFunction_ignore_event m_fnIgnoreEvent; |
280 |
InstrumentScriptVMFunction_delete_event_mark m_fnDeleteEventMark; |
InstrumentScriptVMFunction_delete_event_mark m_fnDeleteEventMark; |
281 |
InstrumentScriptVMFunction_by_marks m_fnByMarks; |
InstrumentScriptVMFunction_by_marks m_fnByMarks; |
282 |
InstrumentScriptVMFunction_change_vol m_fnChangeVol; |
InstrumentScriptVMFunction_change_vol m_fnChangeVol; |
283 |
|
InstrumentScriptVMFunction_change_vol_time m_fnChangeVolTime; |
284 |
InstrumentScriptVMFunction_change_tune m_fnChangeTune; |
InstrumentScriptVMFunction_change_tune m_fnChangeTune; |
285 |
|
InstrumentScriptVMFunction_change_tune_time m_fnChangeTuneTime; |
286 |
InstrumentScriptVMFunction_change_pan m_fnChangePan; |
InstrumentScriptVMFunction_change_pan m_fnChangePan; |
287 |
InstrumentScriptVMFunction_change_cutoff m_fnChangeCutoff; |
InstrumentScriptVMFunction_change_cutoff m_fnChangeCutoff; |
288 |
InstrumentScriptVMFunction_change_reso m_fnChangeReso; |
InstrumentScriptVMFunction_change_reso m_fnChangeReso; |
289 |
|
InstrumentScriptVMFunction_change_attack m_fnChangeAttack; |
290 |
|
InstrumentScriptVMFunction_change_decay m_fnChangeDecay; |
291 |
|
InstrumentScriptVMFunction_change_release m_fnChangeRelease; |
292 |
|
InstrumentScriptVMFunction_change_amp_lfo_depth m_fnChangeAmpLFODepth; |
293 |
|
InstrumentScriptVMFunction_change_amp_lfo_freq m_fnChangeAmpLFOFreq; |
294 |
|
InstrumentScriptVMFunction_change_pitch_lfo_depth m_fnChangePitchLFODepth; |
295 |
|
InstrumentScriptVMFunction_change_pitch_lfo_freq m_fnChangePitchLFOFreq; |
296 |
|
InstrumentScriptVMFunction_change_note m_fnChangeNote; |
297 |
|
InstrumentScriptVMFunction_change_velo m_fnChangeVelo; |
298 |
InstrumentScriptVMFunction_event_status m_fnEventStatus; |
InstrumentScriptVMFunction_event_status m_fnEventStatus; |
299 |
InstrumentScriptVMFunction_wait m_fnWait2; |
InstrumentScriptVMFunction_wait m_fnWait2; |
300 |
InstrumentScriptVMFunction_stop_wait m_fnStopWait; |
InstrumentScriptVMFunction_stop_wait m_fnStopWait; |
301 |
|
InstrumentScriptVMFunction_fade_in m_fnFadeIn; |
302 |
|
InstrumentScriptVMFunction_fade_out m_fnFadeOut; |
303 |
|
InstrumentScriptVMFunction_change_vol_curve m_fnChangeVolCurve; |
304 |
|
InstrumentScriptVMFunction_change_tune_curve m_fnChangeTuneCurve; |
305 |
|
InstrumentScriptVMFunction_get_event_par m_fnGetEventPar; |
306 |
|
InstrumentScriptVMFunction_set_event_par m_fnSetEventPar; |
307 |
|
InstrumentScriptVMFunction_change_play_pos m_fnChangePlayPos; |
308 |
InstrumentScriptVMDynVar_ENGINE_UPTIME m_varEngineUptime; |
InstrumentScriptVMDynVar_ENGINE_UPTIME m_varEngineUptime; |
309 |
InstrumentScriptVMDynVar_NI_CALLBACK_ID m_varCallbackID; |
InstrumentScriptVMDynVar_NI_CALLBACK_ID m_varCallbackID; |
310 |
|
InstrumentScriptVMDynVar_ALL_EVENTS m_varAllEvents; |
311 |
|
|
312 |
friend class InstrumentScriptVMFunction_play_note; |
friend class InstrumentScriptVMFunction_play_note; |
313 |
friend class InstrumentScriptVMFunction_set_controller; |
friend class InstrumentScriptVMFunction_set_controller; |
318 |
friend class InstrumentScriptVMFunction_delete_event_mark; |
friend class InstrumentScriptVMFunction_delete_event_mark; |
319 |
friend class InstrumentScriptVMFunction_by_marks; |
friend class InstrumentScriptVMFunction_by_marks; |
320 |
friend class InstrumentScriptVMFunction_change_vol; |
friend class InstrumentScriptVMFunction_change_vol; |
321 |
|
friend class InstrumentScriptVMFunction_change_vol_time; |
322 |
friend class InstrumentScriptVMFunction_change_tune; |
friend class InstrumentScriptVMFunction_change_tune; |
323 |
|
friend class InstrumentScriptVMFunction_change_tune_time; |
324 |
friend class InstrumentScriptVMFunction_change_pan; |
friend class InstrumentScriptVMFunction_change_pan; |
325 |
friend class InstrumentScriptVMFunction_change_cutoff; |
friend class InstrumentScriptVMFunction_change_cutoff; |
326 |
friend class InstrumentScriptVMFunction_change_reso; |
friend class InstrumentScriptVMFunction_change_reso; |
327 |
|
friend class InstrumentScriptVMFunction_change_attack; |
328 |
|
friend class InstrumentScriptVMFunction_change_decay; |
329 |
|
friend class InstrumentScriptVMFunction_change_release; |
330 |
|
friend class VMChangeSynthParamFunction; |
331 |
|
friend class InstrumentScriptVMFunction_change_amp_lfo_depth; |
332 |
|
friend class InstrumentScriptVMFunction_change_amp_lfo_freq; |
333 |
|
friend class InstrumentScriptVMFunction_change_pitch_lfo_depth; |
334 |
|
friend class InstrumentScriptVMFunction_change_pitch_lfo_freq; |
335 |
|
friend class VMChangeFadeCurveFunction; |
336 |
|
friend class InstrumentScriptVMFunction_fade_in; |
337 |
|
friend class InstrumentScriptVMFunction_fade_out; |
338 |
|
friend class InstrumentScriptVMFunction_get_event_par; |
339 |
|
friend class InstrumentScriptVMFunction_set_event_par; |
340 |
|
friend class InstrumentScriptVMFunction_change_note; |
341 |
|
friend class InstrumentScriptVMFunction_change_velo; |
342 |
|
friend class InstrumentScriptVMFunction_change_play_pos; |
343 |
friend class InstrumentScriptVMFunction_event_status; |
friend class InstrumentScriptVMFunction_event_status; |
344 |
friend class InstrumentScriptVMFunction_wait; |
friend class InstrumentScriptVMFunction_wait; |
345 |
friend class InstrumentScriptVMFunction_stop_wait; |
friend class InstrumentScriptVMFunction_stop_wait; |
346 |
friend class InstrumentScriptVMDynVar_ENGINE_UPTIME; |
friend class InstrumentScriptVMDynVar_ENGINE_UPTIME; |
347 |
friend class InstrumentScriptVMDynVar_NI_CALLBACK_ID; |
friend class InstrumentScriptVMDynVar_NI_CALLBACK_ID; |
348 |
|
friend class InstrumentScriptVMDynVar_ALL_EVENTS; |
349 |
}; |
}; |
350 |
|
|
351 |
} // namespace LinuxSampler |
} // namespace LinuxSampler |