1 |
/* |
2 |
* Copyright (c) 2014 - 2019 Christian Schoenebeck |
3 |
* |
4 |
* http://www.linuxsampler.org |
5 |
* |
6 |
* This file is part of LinuxSampler and released under the same terms. |
7 |
* See README file for details. |
8 |
*/ |
9 |
|
10 |
#ifndef LS_GIG_INSTRUMENT_SCRIPT_VM_H |
11 |
#define LS_GIG_INSTRUMENT_SCRIPT_VM_H |
12 |
|
13 |
#include "../common/InstrumentScriptVM.h" |
14 |
#include "InstrumentScriptVMFunctions.h" |
15 |
|
16 |
namespace LinuxSampler { namespace gig { |
17 |
|
18 |
/** @brief Real-time instrument script virtual machine (Giga format). |
19 |
* |
20 |
* Extends the common sampler format independent InstrumentScriptVM with |
21 |
* Giga format specific built-in script variables and functions. |
22 |
* |
23 |
* Note that this class is currently re-entrant safe, but @b not thread |
24 |
* safe! See also comments of base class ScriptVM regarding this issue. |
25 |
*/ |
26 |
class InstrumentScriptVM : public LinuxSampler::InstrumentScriptVM { |
27 |
public: |
28 |
InstrumentScriptVM(); |
29 |
VMFunction* functionByName(const String& name) OVERRIDE; |
30 |
//std::map<String,VMIntPtr*> builtInIntVariables() OVERRIDE; |
31 |
//std::map<String,VMInt8Array*> builtInIntArrayVariables() OVERRIDE; |
32 |
std::map<String,vmint> builtInConstIntVariables() OVERRIDE; |
33 |
protected: |
34 |
InstrumentScriptVMFunction_gig_set_dim_zone m_fnGigSetDimZone; |
35 |
InstrumentScriptVMFunction_same_region m_fnSameRegion; |
36 |
|
37 |
friend class InstrumentScriptVMFunction_gig_set_dim_zone; |
38 |
friend class InstrumentScriptVMFunction_same_region; |
39 |
}; |
40 |
|
41 |
}} // namespace LinuxSampler::gig |
42 |
|
43 |
#endif // LS_GIG_INSTRUMENT_SCRIPT_VM_H |