/[svn]/linuxsampler/trunk/src/Sampler.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/Sampler.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 209 by schoenebeck, Sun Jul 18 00:29:39 2004 UTC revision 212 by schoenebeck, Wed Jul 28 14:17:29 2004 UTC
# Line 160  namespace LinuxSampler { Line 160  namespace LinuxSampler {
160          return pMidiInputPort;          return pMidiInputPort;
161      }      }
162    
163    
164    
165      // ******************************************************************      // ******************************************************************
166      // * Sampler      // * Sampler
167    
# Line 167  namespace LinuxSampler { Line 169  namespace LinuxSampler {
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() {
# Line 343  namespace LinuxSampler { Line 321  namespace LinuxSampler {
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

Legend:
Removed from v.209  
changed lines
  Added in v.212

  ViewVC Help
Powered by ViewVC