1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-09 14:43:57 +01:00

Remove some naked new amd delete in: Plug-in effects

This commit is contained in:
Paul Licameli
2016-08-04 07:33:50 -04:00
parent 6fec00149b
commit eb6ba1ed7a
10 changed files with 138 additions and 155 deletions

View File

@@ -1346,36 +1346,28 @@ bool AudioUnitEffect::RealtimeInitialize()
bool AudioUnitEffect::RealtimeAddProcessor(int numChannels, float sampleRate)
{
AudioUnitEffect *slave = new AudioUnitEffect(mPath, mName, mComponent, this);
auto slave = make_movable<AudioUnitEffect>(mPath, mName, mComponent, this);
if (!slave->SetHost(NULL))
{
delete slave;
return false;
}
slave->SetBlockSize(mBlockSize);
slave->SetChannelCount(numChannels);
slave->SetSampleRate(sampleRate);
if (!CopyParameters(mUnit, slave->mUnit))
{
delete slave;
return false;
}
mSlaves.Add(slave);
auto pSlave = slave.get();
mSlaves.push_back(std::move(slave));
return slave->ProcessInitialize(0);
return pSlave->ProcessInitialize(0);
}
bool AudioUnitEffect::RealtimeFinalize()
{
for (size_t i = 0, cnt = mSlaves.GetCount(); i < cnt; i++)
{
for (size_t i = 0, cnt = mSlaves.size(); i < cnt; i++)
mSlaves[i]->ProcessFinalize();
delete mSlaves[i];
}
mSlaves.Clear();
mSlaves.clear();
for (int i = 0; i < mAudioIns; i++)
{
@@ -2184,10 +2176,8 @@ void AudioUnitEffect::EventListener(const AudioUnitEvent *inEvent,
else
{
// We're the master, so propogate
for (size_t i = 0, cnt = mSlaves.GetCount(); i < cnt; i++)
{
for (size_t i = 0, cnt = mSlaves.size(); i < cnt; i++)
mSlaves[i]->EventListener(inEvent, inParameterValue);
}
}
}

View File

@@ -14,6 +14,8 @@
#if USE_AUDIO_UNITS
#include "../../MemoryX.h"
#include <vector>
#include <wx/dialog.h>
#include <AudioToolbox/AudioUnitUtilities.h>
@@ -31,7 +33,7 @@
class AudioUnitEffect;
WX_DEFINE_ARRAY_PTR(AudioUnitEffect *, AudioUnitEffectArray);
using AudioUnitEffectArray = std::vector<movable_ptr<AudioUnitEffect>>;
class AudioUnitEffectExportDialog;
class AudioUnitEffectImportDialog;