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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3082 - (hide annotations) (download)
Mon Jan 9 18:39:35 2017 UTC (7 years, 3 months ago) by schoenebeck
File size: 3263 byte(s)
* Added support for sfz extension opcode 'script' which may be used to
  load real-time instrument script file (NKSP script language).
* Removed code duplication in SFZ file loading code.
* Bumped version (2.0.0.svn37).

1 schoenebeck 2600 /*
2 schoenebeck 3082 * Copyright (c) 2014 - 2017 Christian Schoenebeck
3 schoenebeck 2600 *
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 schoenebeck 3082 // first get built-in integer variables of derived VM class
23 schoenebeck 2600 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

  ViewVC Help
Powered by ViewVC