148 |
*/ |
*/ |
149 |
void SetMidiBankLsb(uint8_t BankLSB); |
void SetMidiBankLsb(uint8_t BankLSB); |
150 |
|
|
151 |
|
/** |
152 |
|
* Returns true if this EngineChannel is using no MIDI |
153 |
|
* instrument map at all, that is if it will ignore all MIDI |
154 |
|
* program change messages. |
155 |
|
* |
156 |
|
* @see UsesDefaultMidiInstrumentMap() |
157 |
|
* @see GetMidiInstrumentMap() |
158 |
|
*/ |
159 |
|
bool UsesNoMidiInstrumentMap(); |
160 |
|
|
161 |
|
/** |
162 |
|
* Returns true if this EngineChannel is using the default MIDI |
163 |
|
* instrument map for handling MIDI program changes. |
164 |
|
* |
165 |
|
* @see UsesNoMidiInstrumentMap() |
166 |
|
* @see GetMidiInstrumentMap() |
167 |
|
*/ |
168 |
|
bool UsesDefaultMidiInstrumentMap(); |
169 |
|
|
170 |
|
/** |
171 |
|
* Returns ID of the MIDI instrument map currently used by this |
172 |
|
* EngineChannel to handle MIDI program changes. You should |
173 |
|
* always call @c UsesNoMidiInstrumentMap() and |
174 |
|
* @c UsesDefaultMidiInstrumentMap() before calling this method |
175 |
|
* to check if this EngineChannel is probably using the default |
176 |
|
* map or no map at all, because in these two particular cases |
177 |
|
* this method would throw an exception! |
178 |
|
* |
179 |
|
* @throws Exception - if EngineChannel is set to no map at all |
180 |
|
* or is set to the default map |
181 |
|
* @see UsesNoMidiInstrumentMap() |
182 |
|
* @see UsesDefaultMidiInstrumentMap() |
183 |
|
*/ |
184 |
|
int GetMidiInstrumentMap() throw (Exception); |
185 |
|
|
186 |
|
/** |
187 |
|
* Let this EngineChannel use no MIDI instrument map at all, |
188 |
|
* that is to let it ignore all MIDI program change messages. |
189 |
|
* |
190 |
|
* @see SetMidiInstrumentMapToDefault() |
191 |
|
* @see SetMidiInstrumentMap() |
192 |
|
*/ |
193 |
|
void SetMidiInstrumentMapToNone(); |
194 |
|
|
195 |
|
/** |
196 |
|
* Let this EngineChannel use the default MIDI instrument map to |
197 |
|
* handle MIDI program changes. |
198 |
|
* |
199 |
|
* @see SetMidiInstrumentMapToNone() |
200 |
|
* @see SetMidiInstrumentMap() |
201 |
|
*/ |
202 |
|
void SetMidiInstrumentMapToDefault(); |
203 |
|
|
204 |
|
/** |
205 |
|
* Set a specific MIDI instrument map this EngineChannel should |
206 |
|
* use to handle MIDI program changes. |
207 |
|
* |
208 |
|
* @see SetMidiInstrumentMapToNone() |
209 |
|
* @see SetMidiInstrumentMapToDefault() |
210 |
|
* |
211 |
|
* @throws Exception - in case given map does not exist |
212 |
|
*/ |
213 |
|
void SetMidiInstrumentMap(int MidiMap) throw (Exception); |
214 |
|
|
215 |
int iSamplerChannelIndex; ///< FIXME: nasty hack, might be removed (should be 'virtual EngineChannel* EngineChannel() = 0;', but due to cyclic dependencies only a void* solution would be possible ATM) |
int iSamplerChannelIndex; ///< FIXME: nasty hack, might be removed (should be 'virtual EngineChannel* EngineChannel() = 0;', but due to cyclic dependencies only a void* solution would be possible ATM) |
216 |
|
|
217 |
protected: |
protected: |
225 |
uint8_t uiMidiProgram; |
uint8_t uiMidiProgram; |
226 |
uint8_t uiMidiBankMsb; |
uint8_t uiMidiBankMsb; |
227 |
uint8_t uiMidiBankLsb; |
uint8_t uiMidiBankLsb; |
228 |
|
bool bMidiBankMsbReceived; |
229 |
|
bool bMidiBankLsbReceived; |
230 |
|
bool bProgramChangeReceived; |
231 |
|
int iMidiInstrumentMap; |
232 |
}; |
}; |
233 |
|
|
234 |
} // namespace LinuxSampler |
} // namespace LinuxSampler |