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:
parent
0c9111608d
commit
ff0cd7c347
@ -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);
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user