98 |
virtual void ResourceUpdated(::gig::Instrument* pOldResource, ::gig::Instrument* pNewResource, void* pUpdateArg); |
virtual void ResourceUpdated(::gig::Instrument* pOldResource, ::gig::Instrument* pNewResource, void* pUpdateArg); |
99 |
protected: |
protected: |
100 |
struct midi_key_info_t { |
struct midi_key_info_t { |
101 |
RTEList<Voice>* pActiveVoices; ///< Contains the active voices associated with the MIDI key. |
RTEList<Voice>* pActiveVoices; ///< Contains the active voices associated with the MIDI key. |
102 |
bool KeyPressed; ///< Is true if the respective MIDI key is currently pressed. |
bool KeyPressed; ///< Is true if the respective MIDI key is currently pressed. |
103 |
bool Active; ///< If the key contains active voices. |
bool Active; ///< If the key contains active voices. |
104 |
uint* pSelf; ///< hack to allow fast deallocation of the key from the list of active keys |
bool ReleaseTrigger; ///< If we have to launch release triggered voice(s) when the key is released |
105 |
RTEList<Event>* pEvents; ///< Key specific events (only Note-on, Note-off and sustain pedal currently) |
uint* pSelf; ///< hack to allow fast deallocation of the key from the list of active keys |
106 |
|
RTEList<Event>* pEvents; ///< Key specific events (only Note-on, Note-off and sustain pedal currently) |
107 |
}; |
}; |
108 |
|
|
109 |
static InstrumentResourceManager Instruments; |
static InstrumentResourceManager Instruments; |
148 |
void ProcessNoteOff(Event* pNoteOffEvent); |
void ProcessNoteOff(Event* pNoteOffEvent); |
149 |
void ProcessPitchbend(Event* pPitchbendEvent); |
void ProcessPitchbend(Event* pPitchbendEvent); |
150 |
void ProcessControlChange(Event* pControlChangeEvent); |
void ProcessControlChange(Event* pControlChangeEvent); |
151 |
void LaunchVoice(Event* pNoteOnEvent, int iLayer = 0); |
void LaunchVoice(Event* pNoteOnEvent, int iLayer = 0, bool ReleaseTriggerVoice = false); |
152 |
void KillVoiceImmediately(Voice* pVoice); |
void KillVoiceImmediately(Voice* pVoice); |
153 |
void ResetSynthesisParameters(Event::destination_t dst, float val); |
void ResetSynthesisParameters(Event::destination_t dst, float val); |
154 |
void ResetInternal(); |
void ResetInternal(); |