1 |
/* |
2 |
* Copyright (c) 2014 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 |
#include "InstrumentScriptVM.h" |
11 |
#include "../../common/global_private.h" |
12 |
#include "EngineChannel.h" |
13 |
|
14 |
namespace LinuxSampler { namespace gig { |
15 |
|
16 |
InstrumentScriptVM::InstrumentScriptVM() : |
17 |
LinuxSampler::InstrumentScriptVM(), m_fnGigSetDimZone(this) |
18 |
{ |
19 |
} |
20 |
|
21 |
std::map<String,int> InstrumentScriptVM::builtInConstIntVariables() { |
22 |
// first get buil-in integer variables of derived VM class |
23 |
std::map<String,int> m = |
24 |
::LinuxSampler::InstrumentScriptVM::builtInConstIntVariables(); |
25 |
|
26 |
// add own built-in script constants |
27 |
m["$GIG_DIM_CHANNEL"] = ::gig::dimension_samplechannel; |
28 |
m["$GIG_DIM_LAYER"] = ::gig::dimension_layer; |
29 |
m["$GIG_DIM_VELOCITY"] = ::gig::dimension_velocity; |
30 |
m["$GIG_DIM_AFTERTOUCH"] = ::gig::dimension_channelaftertouch; |
31 |
m["$GIG_DIM_RELEASE"] = ::gig::dimension_releasetrigger; |
32 |
m["$GIG_DIM_KEYBOARD"] = ::gig::dimension_keyboard; |
33 |
m["$GIG_DIM_ROUNDROBIN"] = ::gig::dimension_roundrobin; |
34 |
m["$GIG_DIM_RANDOM"] = ::gig::dimension_random; |
35 |
m["$GIG_DIM_SMARTMIDI"] = ::gig::dimension_smartmidi; |
36 |
m["$GIG_DIM_ROUNDROBINKEY"] = ::gig::dimension_roundrobinkeyboard; |
37 |
m["$GIG_DIM_MODWHEEL"] = ::gig::dimension_modwheel; |
38 |
m["$GIG_DIM_BREATH"] = ::gig::dimension_breath; |
39 |
m["$GIG_DIM_FOOT"] = ::gig::dimension_foot; |
40 |
m["$GIG_DIM_PORTAMENTOTIME"] = ::gig::dimension_portamentotime; |
41 |
m["$GIG_DIM_EFFECT1"] = ::gig::dimension_effect1; |
42 |
m["$GIG_DIM_EFFECT2"] = ::gig::dimension_effect2; |
43 |
m["$GIG_DIM_GENPURPOSE1"] = ::gig::dimension_genpurpose1; |
44 |
m["$GIG_DIM_GENPURPOSE2"] = ::gig::dimension_genpurpose2; |
45 |
m["$GIG_DIM_GENPURPOSE3"] = ::gig::dimension_genpurpose3; |
46 |
m["$GIG_DIM_GENPURPOSE4"] = ::gig::dimension_genpurpose4; |
47 |
m["$GIG_DIM_SUSTAIN"] = ::gig::dimension_sustainpedal; |
48 |
m["$GIG_DIM_PORTAMENTO"] = ::gig::dimension_portamento; |
49 |
m["$GIG_DIM_SOSTENUTO"] = ::gig::dimension_sostenutopedal; |
50 |
m["$GIG_DIM_SOFT"] = ::gig::dimension_softpedal; |
51 |
m["$GIG_DIM_GENPURPOSE5"] = ::gig::dimension_genpurpose5; |
52 |
m["$GIG_DIM_GENPURPOSE6"] = ::gig::dimension_genpurpose6; |
53 |
m["$GIG_DIM_GENPURPOSE7"] = ::gig::dimension_genpurpose7; |
54 |
m["$GIG_DIM_GENPURPOSE8"] = ::gig::dimension_genpurpose8; |
55 |
m["$GIG_DIM_EFFECT1DEPTH"] = ::gig::dimension_effect1depth; |
56 |
m["$GIG_DIM_EFFECT2DEPTH"] = ::gig::dimension_effect2depth; |
57 |
m["$GIG_DIM_EFFECT3DEPTH"] = ::gig::dimension_effect3depth; |
58 |
m["$GIG_DIM_EFFECT4DEPTH"] = ::gig::dimension_effect4depth; |
59 |
m["$GIG_DIM_EFFECT5DEPTH"] = ::gig::dimension_effect5depth; |
60 |
|
61 |
return m; |
62 |
} |
63 |
|
64 |
VMFunction* InstrumentScriptVM::functionByName(const String& name) { |
65 |
// built-in script functions of this class |
66 |
if (name == "gig_set_dim_zone") return &m_fnGigSetDimZone; |
67 |
|
68 |
// built-in script functions of derived VM class |
69 |
return ::LinuxSampler::InstrumentScriptVM::functionByName(name); |
70 |
} |
71 |
|
72 |
}} // namespace LinuxSampler::gig |