72 |
~Engine(); |
~Engine(); |
73 |
|
|
74 |
// abstract methods derived from class 'LinuxSampler::Engine' |
// abstract methods derived from class 'LinuxSampler::Engine' |
75 |
virtual void LoadInstrument(const char* FileName, uint Instrument); |
virtual void PrepareLoadInstrument(const char* FileName, uint Instrument); |
76 |
|
virtual void LoadInstrument(); |
77 |
virtual void Reset(); |
virtual void Reset(); |
78 |
virtual void Enable(); |
virtual void Enable(); |
79 |
virtual void Disable(); |
virtual void Disable(); |
101 |
virtual String Version(); |
virtual String Version(); |
102 |
virtual String EngineName(); |
virtual String EngineName(); |
103 |
virtual String InstrumentFileName(); |
virtual String InstrumentFileName(); |
104 |
|
virtual String InstrumentName(); |
105 |
virtual int InstrumentIndex(); |
virtual int InstrumentIndex(); |
106 |
virtual int InstrumentStatus(); |
virtual int InstrumentStatus(); |
107 |
|
|
108 |
// abstract methods derived from interface class 'InstrumentConsumer' |
// abstract methods derived from interface class 'InstrumentConsumer' |
109 |
virtual void ResourceToBeUpdated(::gig::Instrument* pResource, void*& pUpdateArg); |
virtual void ResourceToBeUpdated(::gig::Instrument* pResource, void*& pUpdateArg); |
110 |
virtual void ResourceUpdated(::gig::Instrument* pOldResource, ::gig::Instrument* pNewResource, void* pUpdateArg); |
virtual void ResourceUpdated(::gig::Instrument* pOldResource, ::gig::Instrument* pNewResource, void* pUpdateArg); |
111 |
protected: |
//protected: |
112 |
struct midi_key_info_t { |
struct midi_key_info_t { |
113 |
RTList<Voice>* pActiveVoices; ///< Contains the active voices associated with the MIDI key. |
RTList<Voice>* pActiveVoices; ///< Contains the active voices associated with the MIDI key. |
114 |
bool KeyPressed; ///< Is true if the respective MIDI key is currently pressed. |
bool KeyPressed; ///< Is true if the respective MIDI key is currently pressed. |
150 |
bool SustainPedal; ///< true if sustain pedal is down |
bool SustainPedal; ///< true if sustain pedal is down |
151 |
double GlobalVolume; ///< overall volume (a value < 1.0 means attenuation, a value > 1.0 means amplification) |
double GlobalVolume; ///< overall volume (a value < 1.0 means attenuation, a value > 1.0 means amplification) |
152 |
int Pitch; ///< Current (absolute) MIDI pitch value. |
int Pitch; ///< Current (absolute) MIDI pitch value. |
153 |
|
int CurrentKeyDimension; ///< Current value (0-127) for the keyboard dimension, altered by pressing a keyswitching key. |
154 |
int ActiveVoiceCount; ///< number of currently active voices |
int ActiveVoiceCount; ///< number of currently active voices |
155 |
int ActiveVoiceCountMax; ///< the maximum voice usage since application start |
int ActiveVoiceCountMax; ///< the maximum voice usage since application start |
156 |
bool SuspensionRequested; |
bool SuspensionRequested; |
157 |
ConditionServer EngineDisabled; |
ConditionServer EngineDisabled; |
158 |
String InstrumentFile; |
String InstrumentFile; |
159 |
int InstrumentIdx; |
int InstrumentIdx; |
160 |
|
String InstrumentIdxName; |
161 |
int InstrumentStat; |
int InstrumentStat; |
162 |
int8_t ScaleTuning[12]; ///< contains optional detune factors (-64..+63 cents) for all 12 semitones of an octave |
int8_t ScaleTuning[12]; ///< contains optional detune factors (-64..+63 cents) for all 12 semitones of an octave |
163 |
RTList<Voice>::Iterator itLastStolenVoice; ///< Only for voice stealing: points to the last voice which was theft in current audio fragment, NULL otherwise. |
RTList<Voice>::Iterator itLastStolenVoice; ///< Only for voice stealing: points to the last voice which was theft in current audio fragment, NULL otherwise. |
169 |
void ProcessPitchbend(Pool<Event>::Iterator& itPitchbendEvent); |
void ProcessPitchbend(Pool<Event>::Iterator& itPitchbendEvent); |
170 |
void ProcessControlChange(Pool<Event>::Iterator& itControlChangeEvent); |
void ProcessControlChange(Pool<Event>::Iterator& itControlChangeEvent); |
171 |
void ProcessSysex(Pool<Event>::Iterator& itSysexEvent); |
void ProcessSysex(Pool<Event>::Iterator& itSysexEvent); |
172 |
Pool<Voice>::Iterator LaunchVoice(Pool<Event>::Iterator& itNoteOnEvent, int iLayer = 0, bool ReleaseTriggerVoice = false, bool VoiceStealing = true); |
Pool<Voice>::Iterator LaunchVoice(Pool<Event>::Iterator& itNoteOnEvent, int iLayer, bool ReleaseTriggerVoice, bool VoiceStealing); |
173 |
void StealVoice(Pool<Event>::Iterator& itNoteOnEvent); |
void StealVoice(Pool<Event>::Iterator& itNoteOnEvent); |
174 |
void FreeVoice(Pool<Voice>::Iterator& itVoice); |
void FreeVoice(Pool<Voice>::Iterator& itVoice); |
175 |
|
void FreeKey(midi_key_info_t* pKey); |
176 |
void ResetSynthesisParameters(Event::destination_t dst, float val); |
void ResetSynthesisParameters(Event::destination_t dst, float val); |
177 |
void ResetInternal(); |
void ResetInternal(); |
178 |
|
|