/[svn]/linuxsampler/trunk/src/engines/gig/InstrumentScriptVM.cpp
ViewVC logotype

Contents of /linuxsampler/trunk/src/engines/gig/InstrumentScriptVM.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3228 - (show annotations) (download)
Sun May 28 14:46:14 2017 UTC (6 years, 11 months ago) by schoenebeck
File size: 3352 byte(s)
* Implemented built-in script function "same_region()" (currently only
  available for gig format engine).
* Bumped version (2.0.0.svn53).

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

  ViewVC Help
Powered by ViewVC