/[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 61 by schoenebeck, Mon May 3 19:29:44 2004 UTC revision 76 by senkov, Fri May 14 19:10:21 2004 UTC
# Line 48  namespace LinuxSampler { Line 48  namespace LinuxSampler {
48          }          }
49      }      }
50    
51      void SamplerChannel::LoadEngine(engine_type_t EngineType) {      void SamplerChannel::LoadEngine(Engine::type_t EngineType) {
52          dmsg(1,("SamplerChannel: Loading engine\n"));          dmsg(2,("SamplerChannel: Loading engine..."));
53    
54          // create new engine          // create new engine
55          Engine* pNewEngine = NULL;          Engine* pNewEngine = NULL;
56          switch (EngineType) {          switch (EngineType) {
57              case engine_type_gig:              case Engine::type_gig:
58                  pNewEngine = new gig::Engine;                  pNewEngine = new gig::Engine;
59                  break;                  break;
60              default:              default:
# Line 72  namespace LinuxSampler { Line 72  namespace LinuxSampler {
72          pEngine = pNewEngine;          pEngine = pNewEngine;
73          if (pMidiInputDevice) pMidiInputDevice->Connect(pNewEngine, (MidiInputDevice::midi_chan_t) Index());          if (pMidiInputDevice) pMidiInputDevice->Connect(pNewEngine, (MidiInputDevice::midi_chan_t) Index());
74          if (pAudioOutputDevice) pAudioOutputDevice->Connect(pNewEngine);          if (pAudioOutputDevice) pAudioOutputDevice->Connect(pNewEngine);
75          dmsg(1,("SamplerChannel: Engine loaded.\n"));          dmsg(2,("OK\n"));
76      }      }
77    
78      void SamplerChannel::SetAudioOutputDevice(audio_output_type_t AudioType) {      void SamplerChannel::SetAudioOutputDevice(AudioOutputDevice::type_t AudioType) {
79          // get / create desired audio device          // get / create desired audio device
80          AudioOutputDevice* pDevice = pSampler->GetAudioOutputDevice(AudioType);          AudioOutputDevice* pDevice = pSampler->GetAudioOutputDevice(AudioType);
81          if (!pDevice) pDevice = pSampler->CreateAudioOutputDevice(AudioType);          if (!pDevice) pDevice = pSampler->CreateAudioOutputDevice(AudioType);
# Line 88  namespace LinuxSampler { Line 88  namespace LinuxSampler {
88          if (pEngine) pAudioOutputDevice->Connect(pEngine);          if (pEngine) pAudioOutputDevice->Connect(pEngine);
89      }      }
90    
91      void SamplerChannel::SetMidiInputDevice(midi_input_type_t MidiType, MidiInputDevice::midi_chan_t MidiChannel) {      void SamplerChannel::SetMidiInputDevice(MidiInputDevice::type_t MidiType, MidiInputDevice::midi_chan_t MidiChannel) {
92          // get / create desired midi device          // get / create desired midi device
93          MidiInputDevice* pDevice = pSampler->GetMidiInputDevice(MidiType);          MidiInputDevice* pDevice = pSampler->GetMidiInputDevice(MidiType);
94          if (!pDevice) pDevice = pSampler->CreateMidiInputDevice(MidiType);          if (!pDevice) pDevice = pSampler->CreateMidiInputDevice(MidiType);
# Line 163  namespace LinuxSampler { Line 163  namespace LinuxSampler {
163      }      }
164    
165      uint Sampler::SamplerChannels() {      uint Sampler::SamplerChannels() {
166          vSamplerChannels.size();          return vSamplerChannels.size();
167      }      }
168    
169      SamplerChannel* Sampler::AddSamplerChannel() {      SamplerChannel* Sampler::AddSamplerChannel() {
# Line 194  namespace LinuxSampler { Line 194  namespace LinuxSampler {
194          RemoveSamplerChannel(pChannel);          RemoveSamplerChannel(pChannel);
195      }      }
196    
197      AudioOutputDevice* Sampler::CreateAudioOutputDevice(audio_output_type_t AudioType) {      AudioOutputDevice* Sampler::CreateAudioOutputDevice(AudioOutputDevice::type_t AudioType) {
198          // check if device already created          // check if device already created
199          AudioOutputDevice* pDevice = GetAudioOutputDevice(AudioType);          AudioOutputDevice* pDevice = GetAudioOutputDevice(AudioType);
200          if (pDevice) return pDevice;          if (pDevice) return pDevice;
201    
202          // create new device          // create new device
203          switch (AudioType) {          switch (AudioType) {
204              case audio_output_type_alsa:              case AudioOutputDevice::type_alsa:
205                  pDevice = new AudioOutputDeviceAlsa;                  pDevice = new AudioOutputDeviceAlsa;
206                  break;                  break;
207              case audio_output_type_jack:  #if HAVE_JACK
208                case AudioOutputDevice::type_jack:
209                  pDevice = new AudioOutputDeviceJack;                  pDevice = new AudioOutputDeviceJack;
210                  break;                  break;
211    #endif
212              default:              default:
213                  throw LinuxSamplerException("Unknown audio output device type");                  throw LinuxSamplerException("Unknown audio output device type");
214          }          }
# Line 214  namespace LinuxSampler { Line 216  namespace LinuxSampler {
216          // activate device          // activate device
217          pDevice->Play();          pDevice->Play();
218    
219            // add new audio device to the audio device list
220            AudioOutputDevices[AudioType] = pDevice;
221    
222          return pDevice;          return pDevice;
223      }      }
224    
225      AudioOutputDevice* Sampler::GetAudioOutputDevice(audio_output_type_t AudioType) {      AudioOutputDevice* Sampler::GetAudioOutputDevice(AudioOutputDevice::type_t AudioType) {
226          AudioOutputDeviceMap::iterator iter = AudioOutputDevices.find(AudioType);          AudioOutputDeviceMap::iterator iter = AudioOutputDevices.find(AudioType);
227          return (iter != AudioOutputDevices.end()) ? iter->second : NULL;          return (iter != AudioOutputDevices.end()) ? iter->second : NULL;
228      }      }
229    
230      MidiInputDevice* Sampler::CreateMidiInputDevice(midi_input_type_t MidiType) {      MidiInputDevice* Sampler::CreateMidiInputDevice(MidiInputDevice::type_t MidiType) {
231          // check if device already created          // check if device already created
232          MidiInputDevice* pDevice = GetMidiInputDevice(MidiType);          MidiInputDevice* pDevice = GetMidiInputDevice(MidiType);
233          if (pDevice) return pDevice;          if (pDevice) return pDevice;
234    
235          // create new device          // create new device
236          switch (MidiType) {          switch (MidiType) {
237              case midi_input_type_alsa:              case MidiInputDevice::type_alsa:
238                  pDevice = new MidiInputDeviceAlsa;                  pDevice = new MidiInputDeviceAlsa;
239                  break;                  break;
240              default:              default:
# Line 239  namespace LinuxSampler { Line 244  namespace LinuxSampler {
244          // activate device          // activate device
245          pDevice->Listen();          pDevice->Listen();
246    
247            // add new MIDI device to the MIDI device list
248            MidiInputDevices[MidiType] = pDevice;
249    
250          return pDevice;          return pDevice;
251      }      }
252    
253      MidiInputDevice* Sampler::GetMidiInputDevice(midi_input_type_t MidiType) {      MidiInputDevice* Sampler::GetMidiInputDevice(MidiInputDevice::type_t MidiType) {
254          MidiInputDeviceMap::iterator iter = MidiInputDevices.find(MidiType);          MidiInputDeviceMap::iterator iter = MidiInputDevices.find(MidiType);
255          return (iter != MidiInputDevices.end()) ? iter->second : NULL;          return (iter != MidiInputDevices.end()) ? iter->second : NULL;
256      }      }

Legend:
Removed from v.61  
changed lines
  Added in v.76

  ViewVC Help
Powered by ViewVC