90 |
FrameTime = 0; |
FrameTime = 0; |
91 |
RandomSeed = 0; |
RandomSeed = 0; |
92 |
pDedicatedVoiceChannelLeft = pDedicatedVoiceChannelRight = NULL; |
pDedicatedVoiceChannelLeft = pDedicatedVoiceChannelRight = NULL; |
93 |
pScriptVM = new InstrumentScriptVM; |
pScriptVM = CreateInstrumentScriptVM(); |
94 |
} |
} |
95 |
|
|
96 |
AbstractEngine::~AbstractEngine() { |
AbstractEngine::~AbstractEngine() { |
106 |
} |
} |
107 |
|
|
108 |
/** |
/** |
109 |
|
* Allocates a sampler format independent real-time instrument script |
110 |
|
* runner. This method is overriden by sampler engines in case they have |
111 |
|
* their own implementation of the script VM, with script feature extensions |
112 |
|
* required for their sampler format. |
113 |
|
*/ |
114 |
|
InstrumentScriptVM* AbstractEngine::CreateInstrumentScriptVM() { |
115 |
|
return new InstrumentScriptVM; // format independent script runner |
116 |
|
} |
117 |
|
|
118 |
|
/** |
119 |
* Once an engine channel is disconnected from an audio output device, |
* Once an engine channel is disconnected from an audio output device, |
120 |
* it will immediately call this method to unregister itself from the |
* it will immediately call this method to unregister itself from the |
121 |
* engine instance and if that engine instance is not used by any other |
* engine instance and if that engine instance is not used by any other |
442 |
Event event = pEventGenerator->CreateEvent(); |
Event event = pEventGenerator->CreateEvent(); |
443 |
event.Type = Event::type_sysex; |
event.Type = Event::type_sysex; |
444 |
event.Param.Sysex.Size = Size; |
event.Param.Sysex.Size = Size; |
445 |
|
event.Format = {}; // init format specific stuff with zeroes |
446 |
event.pEngineChannel = NULL; // as Engine global event |
event.pEngineChannel = NULL; // as Engine global event |
447 |
event.pMidiInputPort = pSender; |
event.pMidiInputPort = pSender; |
448 |
if (pEventQueue->write_space() > 0) { |
if (pEventQueue->write_space() > 0) { |