321 |
cmd.bChangeInstrument = false; |
cmd.bChangeInstrument = false; |
322 |
} |
} |
323 |
|
|
324 |
|
if (pInstrument != NULL) { |
325 |
|
pInstrument = NULL; |
326 |
|
InstrumentStat = -1; |
327 |
|
InstrumentIdx = -1; |
328 |
|
InstrumentIdxName = ""; |
329 |
|
InstrumentFile = ""; |
330 |
|
bStatusChanged = true; |
331 |
|
} |
332 |
|
|
333 |
for (uint i = 0; i < 128; i++) { |
for (uint i = 0; i < 128; i++) { |
334 |
pMIDIKeyInfo[i].pActiveVoices = new RTList<Voice>(pEngine->pVoicePool); |
pMIDIKeyInfo[i].pActiveVoices = new RTList<Voice>(pEngine->pVoicePool); |
335 |
pMIDIKeyInfo[i].pEvents = new RTList<Event>(pEngine->pEventPool); |
pMIDIKeyInfo[i].pEvents = new RTList<Event>(pEngine->pEventPool); |
736 |
} |
} |
737 |
} |
} |
738 |
|
|
739 |
|
/** |
740 |
|
* Will be called by the MIDIIn Thread to signal that a program |
741 |
|
* change should be performed. As a program change isn't |
742 |
|
* real-time safe, the actual change is performed by the disk |
743 |
|
* thread. |
744 |
|
* |
745 |
|
* @param Program - MIDI program change number |
746 |
|
*/ |
747 |
|
void EngineChannel::SendProgramChange(uint8_t Program) { |
748 |
|
if (pEngine) { |
749 |
|
pEngine->pDiskThread->OrderProgramChange(Program, this); |
750 |
|
} |
751 |
|
} |
752 |
|
|
753 |
void EngineChannel::ClearEventLists() { |
void EngineChannel::ClearEventLists() { |
754 |
pEvents->clear(); |
pEvents->clear(); |
755 |
// empty MIDI key specific event lists |
// empty MIDI key specific event lists |