1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-24 00:18:07 +02:00

Try fixing bug #927 again...last attempt was brain damaged.

This commit is contained in:
Leland Lucius 2015-05-11 14:04:02 -05:00
parent 0c9111608d
commit ff0cd7c347
2 changed files with 22 additions and 18 deletions

View File

@ -66,7 +66,6 @@ EffectAmplify::EffectAmplify()
mRatio = powf(10.0f, mAmp / 20.0f); mRatio = powf(10.0f, mAmp / 20.0f);
mCanClip = false; mCanClip = false;
mPeak = 0.0f; mPeak = 0.0f;
mTracksAnalyzed = false;
} }
EffectAmplify::~EffectAmplify() EffectAmplify::~EffectAmplify()
@ -135,30 +134,36 @@ bool EffectAmplify::SetAutomationParameters(EffectAutomationParameters & parms)
bool EffectAmplify::Init() bool EffectAmplify::Init()
{ {
if (!mTracksAnalyzed) mPeak = 0.0f;
SelectedTrackListOfKindIterator iter(Track::Wave, mTracks);
for (Track *t = iter.First(); t; t = iter.Next())
{ {
mPeak = 0.0f; float min, max;
((WaveTrack *)t)->GetMinMax(&min, &max, mT0, mT1);
float newpeak = (fabs(min) > fabs(max) ? fabs(min) : fabs(max));
SelectedTrackListOfKindIterator iter(Track::Wave, mTracks); if (newpeak > mPeak)
for (Track *t = iter.First(); t; t = iter.Next())
{ {
float min, max; mPeak = newpeak;
((WaveTrack *)t)->GetMinMax(&min, &max, mT0, mT1);
float newpeak = (fabs(min) > fabs(max) ? fabs(min) : fabs(max));
if (newpeak > mPeak)
{
mPeak = newpeak;
}
} }
mTracksAnalyzed = true;
} }
return true; return true;
} }
void EffectAmplify::Preview(bool dryOnly)
{
float ratio = mRatio;
float peak = mPeak;
Effect::Preview(dryOnly);
mRatio = ratio;
mPeak = peak;
}
void EffectAmplify::PopulateOrExchange(ShuttleGui & S) void EffectAmplify::PopulateOrExchange(ShuttleGui & S)
{ {
if (IsBatchProcessing()) if (IsBatchProcessing())
@ -177,7 +182,6 @@ void EffectAmplify::PopulateOrExchange(ShuttleGui & S)
} }
} }
S.AddSpace(0, 5); S.AddSpace(0, 5);
S.StartVerticalLay(0); S.StartVerticalLay(0);

View File

@ -53,6 +53,7 @@ public:
// Effect implementation // Effect implementation
virtual bool Init(); virtual bool Init();
virtual void Preview(bool dryOnly);
virtual void PopulateOrExchange(ShuttleGui & S); virtual void PopulateOrExchange(ShuttleGui & S);
virtual bool TransferDataToWindow(); virtual bool TransferDataToWindow();
virtual bool TransferDataFromWindow(); virtual bool TransferDataFromWindow();
@ -68,7 +69,6 @@ private:
private: private:
float mPeak; float mPeak;
bool mTracksAnalyzed;
float mRatio; float mRatio;
float mAmp; float mAmp;