160 |
return pMidiInputPort; |
return pMidiInputPort; |
161 |
} |
} |
162 |
|
|
163 |
|
|
164 |
|
|
165 |
// ****************************************************************** |
// ****************************************************************** |
166 |
// * Sampler |
// * Sampler |
167 |
|
|
169 |
} |
} |
170 |
|
|
171 |
Sampler::~Sampler() { |
Sampler::~Sampler() { |
172 |
// delete sampler channels |
Reset(); |
|
{ |
|
|
SamplerChannelMap::iterator iter = mSamplerChannels.begin(); |
|
|
for (; iter != mSamplerChannels.end(); iter++) delete iter->second; |
|
|
} |
|
|
|
|
|
// delete midi input devices |
|
|
{ |
|
|
MidiInputDeviceMap::iterator iter = mMidiInputDevices.begin(); |
|
|
for (; iter != mMidiInputDevices.end(); iter++) { |
|
|
MidiInputDevice* pDevice = iter->second; |
|
|
pDevice->StopListen(); |
|
|
delete pDevice; |
|
|
} |
|
|
} |
|
|
|
|
|
// delete audio output devices |
|
|
{ |
|
|
AudioOutputDeviceMap::iterator iter = mAudioOutputDevices.begin(); |
|
|
for (; iter != mAudioOutputDevices.end(); iter++) { |
|
|
AudioOutputDevice* pDevice = iter->second; |
|
|
pDevice->Stop(); |
|
|
delete pDevice; |
|
|
} |
|
|
} |
|
173 |
} |
} |
174 |
|
|
175 |
uint Sampler::SamplerChannels() { |
uint Sampler::SamplerChannels() { |
321 |
return pDevice; |
return pDevice; |
322 |
} |
} |
323 |
|
|
324 |
|
void Sampler::Reset() { |
325 |
|
// delete sampler channels |
326 |
|
try { |
327 |
|
SamplerChannelMap::iterator iter = mSamplerChannels.begin(); |
328 |
|
for (; iter != mSamplerChannels.end(); iter++) { |
329 |
|
RemoveSamplerChannel(iter->second); |
330 |
|
} |
331 |
|
} |
332 |
|
catch(...) { |
333 |
|
std::cerr << "Sampler::Reset(): Exception occured while trying to delete all sampler channels, exiting.\n" << std::flush; |
334 |
|
exit(EXIT_FAILURE); |
335 |
|
} |
336 |
|
|
337 |
|
// delete midi input devices |
338 |
|
try { |
339 |
|
MidiInputDeviceMap::iterator iter = mMidiInputDevices.begin(); |
340 |
|
for (; iter != mMidiInputDevices.end(); iter++) { |
341 |
|
DestroyMidiInputDevice(iter->second); |
342 |
|
} |
343 |
|
} |
344 |
|
catch(...) { |
345 |
|
std::cerr << "Sampler::Reset(): Exception occured while trying to delete all MIDI input devices, exiting.\n" << std::flush; |
346 |
|
exit(EXIT_FAILURE); |
347 |
|
} |
348 |
|
|
349 |
|
// delete audio output devices |
350 |
|
try { |
351 |
|
AudioOutputDeviceMap::iterator iter = mAudioOutputDevices.begin(); |
352 |
|
for (; iter != mAudioOutputDevices.end(); iter++) { |
353 |
|
DestroyAudioOutputDevice(iter->second); |
354 |
|
} |
355 |
|
} |
356 |
|
catch(...) { |
357 |
|
std::cerr << "Sampler::Reset(): Exception occured while trying to delete all audio output devices, exiting.\n" << std::flush; |
358 |
|
exit(EXIT_FAILURE); |
359 |
|
} |
360 |
|
} |
361 |
|
|
362 |
} // namespace LinuxSampler |
} // namespace LinuxSampler |