/[svn]/linuxsampler/trunk/src/engines/AbstractEngineChannel.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/AbstractEngineChannel.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2610 by schoenebeck, Fri Jun 6 12:38:54 2014 UTC revision 2611 by schoenebeck, Mon Jun 9 19:20:37 2014 UTC
# Line 31  Line 31 
31    
32  #include "../common/Pool.h"  #include "../common/Pool.h"
33  #include "../common/RingBuffer.h"  #include "../common/RingBuffer.h"
34    #include "../common/ResourceManager.h"
35    #include "common/AbstractInstrumentManager.h"
36    #include "common/InstrumentScriptVM.h"
37    
38  #define CTRL_TABLE_IDX_AFTERTOUCH   128  #define CTRL_TABLE_IDX_AFTERTOUCH   128
39  #define CTRL_TABLE_IDX_PITCHBEND    129  #define CTRL_TABLE_IDX_PITCHBEND    129
40    
41  namespace LinuxSampler {  namespace LinuxSampler {
42    
43      class AbstractEngineChannel: public EngineChannel, public AbstractEngine::ScriptConsumer {      class AbstractEngineChannel: public EngineChannel, public InstrumentScriptConsumer {
44          public:          public:
45              // implementation of abstract methods derived from interface class 'LinuxSampler::EngineChannel'              // implementation of abstract methods derived from interface class 'LinuxSampler::EngineChannel'
46              virtual void    PrepareLoadInstrument(const char* FileName, uint Instrument) OVERRIDE;              virtual void    PrepareLoadInstrument(const char* FileName, uint Instrument) OVERRIDE;
# Line 94  namespace LinuxSampler { Line 97  namespace LinuxSampler {
97              virtual AbstractEngine::Format GetEngineFormat() = 0;              virtual AbstractEngine::Format GetEngineFormat() = 0;
98    
99              AudioOutputDevice* GetAudioOutputDeviceSafe();              AudioOutputDevice* GetAudioOutputDeviceSafe();
             void loadInstrumentScript(const String& text);  
             void unloadCurrentInstrumentScript();  
100    
101              friend class AbstractVoice;              friend class AbstractVoice;
102              friend class AbstractEngine;              friend class AbstractEngine;
# Line 137  namespace LinuxSampler { Line 138  namespace LinuxSampler {
138              int                       iEngineIndexSelf;         ///< Reflects the index of this EngineChannel in the Engine's ArrayList.              int                       iEngineIndexSelf;         ///< Reflects the index of this EngineChannel in the Engine's ArrayList.
139              bool                      bStatusChanged;           ///< true in case an engine parameter has changed (e.g. new instrument, another volumet)              bool                      bStatusChanged;           ///< true in case an engine parameter has changed (e.g. new instrument, another volumet)
140              uint32_t                  RoundRobinIndex;          ///< counter for round robin sample selection, incremented for each note on              uint32_t                  RoundRobinIndex;          ///< counter for round robin sample selection, incremented for each note on
141              Pool<ScriptEvent>*        pScriptEvents;            ///< Pool of all available script execution instances. ScriptEvents available to be allocated from the Pool are currently unused / not executiong, whereas the ScriptEvents allocated on the list are currently suspended / have not finished execution yet.              InstrumentScript*         pScript;                  ///< Points to the real-time instrument script(s) to be executed, NULL if current instrument does not have an instrument script.
             struct _Script {  
                 VMParserContext*      parserContext; ///< VM represenation of the currently loaded script or NULL if not script was loaded. Note that it is also not NULL if parser errors occurred!  
                 bool                  bHasValidScript; ///< True in case there is a valid script currently loaded, false if script processing shall be skipped.  
                 VMEventHandler*       handlerInit; ///< VM representation of script's initilization callback or NULL if current script did not define such an init handler.  
                 VMEventHandler*       handlerNote; ///< VM representation of script's MIDI note on callback or NULL if current script did not define such an event handler.  
                 VMEventHandler*       handlerRelease; ///< VM representation of script's MIDI note off callback or NULL if current script did not define such an event handler.  
                 VMEventHandler*       handlerController; ///< VM representation of script's MIDI controller callback or NULL if current script did not define such an event handler.  
                 _Script() {  
                     parserContext = NULL;  
                     bHasValidScript = false;  
                     handlerInit = NULL;  
                     handlerNote = NULL;  
                     handlerRelease = NULL;  
                     handlerController = NULL;  
                 }  
             } script;  
142    
143              SynchronizedConfig< ArrayList<VirtualMidiDevice*> > virtualMidiDevices;              SynchronizedConfig< ArrayList<VirtualMidiDevice*> > virtualMidiDevices;
144              SynchronizedConfig< ArrayList<VirtualMidiDevice*> >::Reader virtualMidiDevicesReader_AudioThread;              SynchronizedConfig< ArrayList<VirtualMidiDevice*> >::Reader virtualMidiDevicesReader_AudioThread;

Legend:
Removed from v.2610  
changed lines
  Added in v.2611

  ViewVC Help
Powered by ViewVC