--- linuxsampler/trunk/src/drivers/Plugin.cpp 2009/06/26 18:55:02 1922 +++ linuxsampler/trunk/src/drivers/Plugin.cpp 2009/07/12 10:35:55 1934 @@ -121,19 +121,25 @@ if (pAudioDevice) { oldState = GetState(); RemoveChannels(); - global->pSampler->DestroyAudioOutputDevice(pAudioDevice); + AudioOutputDeviceFactory::DestroyPrivate(pAudioDevice); } std::map params; params["SAMPLERATE"] = ToString(SampleRate); params["FRAGMENTSIZE"] = ToString(FragmentSize); if (Channels > 0) params["CHANNELS"] = ToString(Channels); pAudioDevice = dynamic_cast( - global->pSampler->CreateAudioOutputDevice(AudioOutputDevicePlugin::Name(), params)); + AudioOutputDeviceFactory::CreatePrivate( + AudioOutputDevicePlugin::Name(), params + ) + ); if (!pMidiDevice) { pMidiDevice = dynamic_cast( - global->pSampler->CreateMidiInputDevice(MidiInputDevicePlugin::Name(), - std::map())); + MidiInputDeviceFactory::CreatePrivate( + MidiInputDevicePlugin::Name(), std::map(), + global->pSampler + ) + ); } if (!oldState.empty()) { @@ -143,8 +149,8 @@ Plugin::~Plugin() { RemoveChannels(); - if (pAudioDevice) global->pSampler->DestroyAudioOutputDevice(pAudioDevice); - if (pMidiDevice) global->pSampler->DestroyMidiInputDevice(pMidiDevice); + if (pAudioDevice) AudioOutputDeviceFactory::DestroyPrivate(pAudioDevice); + if (pMidiDevice) MidiInputDeviceFactory::DestroyPrivate(pMidiDevice); if (bPreInitDone) { if (--global->RefCount == 0) { delete global;