--- linuxsampler/trunk/src/drivers/audio/AudioOutputDevice.cpp 2008/06/22 14:46:46 1748 +++ linuxsampler/trunk/src/drivers/audio/AudioOutputDevice.cpp 2010/09/30 20:00:43 2135 @@ -24,6 +24,7 @@ #include "AudioOutputDeviceFactory.h" #include "AudioOutputDevice.h" #include "../../common/global_private.h" +#include "../../common/IDGenerator.h" namespace LinuxSampler { @@ -183,6 +184,7 @@ AudioOutputDevice::AudioOutputDevice(std::map DriverParameters) : EnginesReader(Engines) { this->Parameters = DriverParameters; + EffectChainIDs = new IDGenerator(); } AudioOutputDevice::~AudioOutputDevice() { @@ -215,6 +217,8 @@ } vEffectChains.clear(); } + + delete EffectChainIDs; } void AudioOutputDevice::Connect(Engine* pEngine) { @@ -258,7 +262,7 @@ } EffectChain* AudioOutputDevice::AddMasterEffectChain() { - EffectChain* pChain = new EffectChain(this); + EffectChain* pChain = new EffectChain(this, EffectChainIDs->create()); vEffectChains.push_back(pChain); return pChain; } @@ -271,6 +275,7 @@ ); std::vector::iterator iter = vEffectChains.begin(); for (int i = 0; i < iChain; ++i) ++iter; + EffectChainIDs->destroy((*iter)->ID()); vEffectChains.erase(iter); }