1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-01 08:09:41 +02:00

changes to try to ensure that ok and preview are enabled when amplify is opened, and peak is set to 0.0. It was working on windows but not on linux

This commit is contained in:
David Bailes 2015-05-19 15:25:49 +01:00 committed by James Crook
parent d0d8f37d85
commit 335ec77020
2 changed files with 8 additions and 3 deletions

View File

@ -37,7 +37,6 @@
#include "Amplify.h"
#define EPSILON 0.000000000001 // allow for imprecise equality comparisons.
enum
{
@ -67,6 +66,7 @@ EffectAmplify::EffectAmplify()
{
mAmp = DEF_Amp;
mRatio = pow(10.0, mAmp / 20.0);
mRatioClip = 0.0;
mCanClip = false;
mPeak = 0.0;
@ -180,6 +180,7 @@ void EffectAmplify::PopulateOrExchange(ShuttleGui & S)
if (mPeak > 0.0)
{
mRatio = 1.0 / mPeak;
mRatioClip = mRatio;
}
else
{
@ -291,7 +292,7 @@ bool EffectAmplify::TransferDataFromWindow()
void EffectAmplify::CheckClip()
{
EnableApply(mClip->GetValue() || (mPeak > 0.0 && mRatio <= 1.0/mPeak + EPSILON));
EnableApply(mClip->GetValue() || (mPeak > 0.0 && mRatio <= mRatioClip));
}
void EffectAmplify::OnAmpText(wxCommandEvent & WXUNUSED(evt))
@ -320,7 +321,10 @@ void EffectAmplify::OnPeakText(wxCommandEvent & WXUNUSED(evt))
return;
}
mRatio = pow(10.0, mNewPeak / 20.0) / mPeak;
if (mNewPeak == 0.0)
mRatio = mRatioClip;
else
mRatio = pow(10.0, mNewPeak / 20.0) / mPeak;
double ampInit = 20.0 * log10(mRatio);
mAmp = TrapDouble(ampInit, MIN_Amp, MAX_Amp);

View File

@ -71,6 +71,7 @@ private:
double mPeak;
double mRatio;
double mRatioClip; // maximum value of mRatio which does not cause clipping
double mAmp;
double mNewPeak;
bool mCanClip;