1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-07 07:39:29 +02:00

Make Effect::mTracks private

This commit is contained in:
Paul Licameli 2016-12-29 10:36:37 -05:00
parent aa0d55ac83
commit 004df48438
13 changed files with 30 additions and 25 deletions

View File

@ -160,7 +160,7 @@ bool EffectAmplify::Init()
{
mPeak = 0.0;
SelectedTrackListOfKindIterator iter(Track::Wave, mTracks);
SelectedTrackListOfKindIterator iter(Track::Wave, inputTracks());
for (Track *t = iter.First(); t; t = iter.Next())
{

View File

@ -197,7 +197,7 @@ bool EffectAutoDuck::Init()
{
mControlTrack = NULL;
TrackListIterator iter(mTracks);
TrackListIterator iter(inputTracks());
Track *t = iter.First();
bool lastWasSelectedWaveTrack = false;

View File

@ -188,7 +188,7 @@ bool EffectChangePitch::Process()
proxy.mProxyEffectName = XO("High Quality Pitch Change");
proxy.setParameters(1.0, pitchRatio);
return proxy.DoEffect(mUIParent, mProjectRate, mTracks, mFactory, &region, false);
return Delegate(proxy, mUIParent, &region, false);
}
else
#endif
@ -397,7 +397,7 @@ void EffectChangePitch::DeduceFrequencies()
{
// As a neat trick, attempt to get the frequency of the note at the
// beginning of the selection.
SelectedTrackListOfKindIterator iter(Track::Wave, mTracks);
SelectedTrackListOfKindIterator iter(Track::Wave, inputTracks());
WaveTrack *track = (WaveTrack *) iter.First();
if (track) {
double rate = track->GetRate();

View File

@ -175,7 +175,7 @@ bool EffectChangeTempo::Process()
EffectSBSMS proxy;
proxy.mProxyEffectName = XO("High Quality Tempo Change");
proxy.setParameters(tempoRatio, 1.0);
success = proxy.DoEffect(mUIParent, mProjectRate, mTracks, mFactory, &region, false);
success = Delegate(proxy, mUIParent, &region, false);
}
else
#endif

View File

@ -367,7 +367,7 @@ bool EffectCompressor::InitPass1()
// Find the maximum block length required for any track
size_t maxlen = 0;
SelectedTrackListOfKindIterator iter(Track::Wave, mTracks);
SelectedTrackListOfKindIterator iter(Track::Wave, inputTracks());
WaveTrack *track = (WaveTrack *) iter.First();
while (track) {
maxlen = std::max(maxlen, track->GetMaxBlockSize());

View File

@ -1224,6 +1224,13 @@ bool Effect::DoEffect(wxWindow *parent,
return returnVal;
}
bool Effect::Delegate( Effect &delegate,
wxWindow *parent, SelectedRegion *selectedRegion, bool shouldPrompt)
{
return delegate.DoEffect( parent, mProjectRate, mTracks, mFactory,
selectedRegion, shouldPrompt );
}
// All legacy effects should have this overridden
bool Effect::Init()
{

View File

@ -241,6 +241,9 @@ class AUDACITY_DLL_API Effect /* not final */ : public wxEvtHandler,
TrackFactory *factory, SelectedRegion *selectedRegion,
bool shouldPrompt = true);
bool Delegate( Effect &delegate,
wxWindow *parent, SelectedRegion *selectedRegion, bool shouldPrompt);
// Realtime Effect Processing
/* not virtual */ bool RealtimeAddProcessor(int group, unsigned chans, float rate);
/* not virtual */ size_t RealtimeProcess(int group,
@ -435,7 +438,7 @@ protected:
// be created with this rate...
double mSampleRate;
TrackFactory *mFactory;
TrackList *mTracks; // the complete list of all tracks
TrackList *inputTracks() const { return mTracks; }
std::unique_ptr<TrackList> mOutputTracks; // used only if CopyInputTracks() is called.
double mT0;
double mT1;
@ -480,9 +483,9 @@ protected:
//
private:
wxWindow *mParent;
TrackList *mTracks; // the complete list of all tracks
bool mIsBatch;
bool mIsLinearEffect;
bool mPreviewWithNotSelected;
bool mPreviewFullSelection;

View File

@ -600,7 +600,7 @@ void EffectEqualization::PopulateOrExchange(ShuttleGui & S)
LoadCurves();
TrackListOfKindIterator iter(Track::Wave, mTracks);
TrackListOfKindIterator iter(Track::Wave, inputTracks());
WaveTrack *t = (WaveTrack *) iter.First();
mHiFreq = (t ? t->GetRate() : GetActiveProject()->GetRate()) / 2.0;
mLoFreq = loFreqI;

View File

@ -99,7 +99,7 @@ bool EffectFindClipping::Process()
const wxString name{ _("Clipping") };
LabelTrack *lt = NULL;
TrackListOfKindIterator iter(Track::Label, mTracks);
TrackListOfKindIterator iter(Track::Label, inputTracks());
for (Track *t = iter.First(); t; t = iter.Next()) {
if (t->GetName() == name) {
lt = (LabelTrack *)t;
@ -115,7 +115,7 @@ bool EffectFindClipping::Process()
int count = 0;
// JC: Only process selected tracks.
SelectedTrackListOfKindIterator waves(Track::Wave, mTracks);
SelectedTrackListOfKindIterator waves(Track::Wave, inputTracks());
WaveTrack *t = (WaveTrack *) waves.First();
while (t) {
double trackStart = t->GetStartTime();

View File

@ -332,7 +332,7 @@ bool EffectScienFilter::Init()
int selcount = 0;
double rate = 0.0;
TrackListOfKindIterator iter(Track::Wave, mTracks);
TrackListOfKindIterator iter(Track::Wave, inputTracks());
WaveTrack *t = (WaveTrack *) iter.First();
mNyquist = (t ? t->GetRate() : GetActiveProject()->GetRate()) / 2.0;

View File

@ -182,7 +182,7 @@ double EffectTruncSilence::CalcPreviewInputLength(double /* previewLength */)
// Start with the whole selection silent
silences.push_back(Region(mT0, mT1));
SelectedTrackListOfKindIterator iter(Track::Wave, mTracks);
SelectedTrackListOfKindIterator iter(Track::Wave, inputTracks());
int whichTrack = 0;
for (Track *t = iter.First(); t; t = iter.Next()) {
@ -272,13 +272,13 @@ bool EffectTruncSilence::ProcessIndependently()
// Check if it's permissible
{
SelectedTrackListOfKindIterator iter(Track::Wave, mTracks);
SelectedTrackListOfKindIterator iter(Track::Wave, inputTracks());
for (Track *track = iter.First(); track;
track = iter.Next(true) // skip linked tracks
) {
if (syncLock) {
Track *const link = track->GetLink();
SyncLockedTracksIterator syncIter(mTracks);
SyncLockedTracksIterator syncIter(inputTracks());
for (Track *track2 = syncIter.StartWith(track); track2; track2 = syncIter.Next()) {
if (track2->GetKind() == Track::Wave &&
!(track2 == track || track2 == link) &&
@ -348,8 +348,8 @@ bool EffectTruncSilence::ProcessAll()
// This list should always be kept in order.
RegionList silences;
SelectedTrackListOfKindIterator iter(Track::Wave, mTracks);
if (FindSilences(silences, mTracks, iter.First(), iter.Last())) {
SelectedTrackListOfKindIterator iter(Track::Wave, inputTracks());
if (FindSilences(silences, inputTracks(), iter.First(), iter.Last())) {
TrackListIterator iterOut(mOutputTracks.get());
double totalCutLen = 0.0;
Track *const first = iterOut.First();

View File

@ -775,12 +775,7 @@ bool NyquistEffect::ShowInterface(wxWindow *parent, bool forceModal)
region.setF0(mF0);
region.setF1(mF1);
#endif
return effect.DoEffect(parent,
mProjectRate,
mTracks,
mFactory,
&region,
true);
return Delegate(effect, parent, &region, true);
}
void NyquistEffect::PopulateOrExchange(ShuttleGui & S)

View File

@ -342,7 +342,7 @@ bool VampEffect::SetAutomationParameters(EffectAutomationParameters & parms)
bool VampEffect::Init()
{
TrackListOfKindIterator iter(Track::Wave, mTracks);
TrackListOfKindIterator iter(Track::Wave, inputTracks());
WaveTrack *left = (WaveTrack *)iter.First();
mRate = 0.0;
@ -393,7 +393,7 @@ bool VampEffect::Process()
return false;
}
TrackListOfKindIterator iter(Track::Wave, mTracks);
TrackListOfKindIterator iter(Track::Wave, inputTracks());
int count = 0;