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

Move many fields out of Envelope that are needed only during editing

This commit is contained in:
Paul Licameli
2016-01-25 22:46:56 -05:00
committed by Paul Licameli
parent 3c4a15f5cb
commit 0af9b46eac
11 changed files with 244 additions and 186 deletions

View File

@@ -241,12 +241,10 @@ EffectEqualization::EffectEqualization()
mLogEnvelope = std::make_unique<Envelope>();
mLogEnvelope->SetInterpolateDB(false);
mLogEnvelope->Mirror(false);
mLogEnvelope->SetRange(MIN_dBMin, MAX_dBMax); // MB: this is the highest possible range
mLinEnvelope = std::make_unique<Envelope>();
mLinEnvelope->SetInterpolateDB(false);
mLinEnvelope->Mirror(false);
mLinEnvelope->SetRange(MIN_dBMin, MAX_dBMax); // MB: this is the highest possible range
mEnvelope = (mLin ? mLinEnvelope : mLogEnvelope).get();
@@ -2365,7 +2363,6 @@ void EffectEqualization::ErrMin(void)
int j=0;
Envelope testEnvelope;
testEnvelope.SetInterpolateDB(false);
testEnvelope.Mirror(false);
testEnvelope.SetRange(-120.0, 60.0);
testEnvelope.Flatten(0.);
testEnvelope.SetTrackLen(1.0);
@@ -2893,8 +2890,8 @@ EqualizationPanel::EqualizationPanel(EffectEqualization *effect, wxWindow *paren
mWidth = 0;
mHeight = 0;
mEditor = std::make_unique<EnvelopeEditor>(*mEffect->mEnvelope, false);
mEffect->mEnvelope->Flatten(0.);
mEffect->mEnvelope->Mirror(false);
mEffect->mEnvelope->SetTrackLen(1.0);
ForceRecalc();
@@ -3103,7 +3100,7 @@ void EqualizationPanel::OnPaint(wxPaintEvent & WXUNUSED(event))
if( mEffect->mDraw->GetValue() )
{
mEffect->mEnvelope->DrawPoints(memDC, mEnvRect, ZoomInfo(0.0, mEnvRect.width-1), false, 0.0,
mEffect->mdBMin, mEffect->mdBMax);
mEffect->mdBMin, mEffect->mdBMax, false);
}
dc.Blit(0, 0, mWidth, mHeight, &memDC, 0, 0, wxCOPY, FALSE);
@@ -3121,7 +3118,7 @@ void EqualizationPanel::OnMouseEvent(wxMouseEvent & event)
CaptureMouse();
}
if (mEffect->mEnvelope->MouseEvent(event, mEnvRect, ZoomInfo(0.0, mEnvRect.width),
if (mEditor->MouseEvent(event, mEnvRect, ZoomInfo(0.0, mEnvRect.width),
false, 0.0,
mEffect->mdBMin, mEffect->mdBMax))
{

View File

@@ -46,6 +46,7 @@
class Envelope;
class EnvelopeEditor;
class EqualizationPanel;
//
@@ -308,6 +309,7 @@ public:
private:
wxWindow *mParent;
EffectEqualization *mEffect;
std::unique_ptr<EnvelopeEditor> mEditor;
bool mRecalcRequired;

View File

@@ -45,7 +45,6 @@
#include "NoiseRemoval.h"
#include "../Envelope.h"
#include "../WaveTrack.h"
#include "../Prefs.h"
#include "../Project.h"
@@ -883,4 +882,4 @@ void NoiseRemovalDialog::OnTimeSlider(wxCommandEvent & WXUNUSED(event))
mTimeT->SetValue(wxString::Format(wxT("%.2f"), mTime));
}
#endif
#endif