1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-07 15:22:34 +02:00

Fix compilation of EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT

This commit is contained in:
Paul Licameli 2018-08-08 17:05:27 -04:00
parent 197122c7d5
commit 2472b128d3
3 changed files with 14 additions and 5 deletions

View File

@ -4553,7 +4553,7 @@ void AudioIO::AILAInitialize() {
mAILAGoalPoint /= 100.0; mAILAGoalPoint /= 100.0;
mAILAAnalysisTime /= 1000.0; mAILAAnalysisTime /= 1000.0;
mAILAMax = 0.0; mAILAMax = 0.0;
mAILALastStartTime = max(0.0, mT0); mAILALastStartTime = max(0.0, mPlaybackSchedule.mT0);
mAILAClipped = false; mAILAClipped = false;
mAILAAnalysisCounter = 0; mAILAAnalysisCounter = 0;
mAILAChangeFactor = 1.0; mAILAChangeFactor = 1.0;
@ -4589,9 +4589,15 @@ void AudioIO::AILAProcess(double maxPeak) {
mAILAMax = max(mAILAMax, maxPeak); mAILAMax = max(mAILAMax, maxPeak);
if ((mAILATotalAnalysis == 0 || mAILAAnalysisCounter < mAILATotalAnalysis) && mTime - mAILALastStartTime >= mAILAAnalysisTime) { if ((mAILATotalAnalysis == 0 || mAILAAnalysisCounter < mAILATotalAnalysis) && mPlaybackSchedule.mTime - mAILALastStartTime >= mAILAAnalysisTime) {
auto ToLinearIfDB = [](double value, int dbRange) {
if (dbRange >= 0)
value = pow(10.0, (-(1.0-value) * dbRange)/20.0);
return value;
};
putchar('\n'); putchar('\n');
mAILAMax = mInputMeter ? mInputMeter->ToLinearIfDB(mAILAMax) : 0.0; mAILAMax = mInputMeter ? ToLinearIfDB(mAILAMax, mInputMeter->GetDBRange()) : 0.0;
double iv = (double) Px_GetInputVolume(mPortMixer); double iv = (double) Px_GetInputVolume(mPortMixer);
unsigned short changetype = 0; //0 - no change, 1 - increase change, 2 - decrease change unsigned short changetype = 0; //0 - no change, 1 - increase change, 2 - decrease change
wxPrintf("mAILAAnalysisCounter:%d\n", mAILAAnalysisCounter); wxPrintf("mAILAAnalysisCounter:%d\n", mAILAAnalysisCounter);
@ -4664,7 +4670,7 @@ void AudioIO::AILAProcess(double maxPeak) {
mAILAMax = 0; mAILAMax = 0;
wxPrintf("\tA decision was made @ %f\n", mAILAAnalysisEndTime); wxPrintf("\tA decision was made @ %f\n", mAILAAnalysisEndTime);
mAILAClipped = false; mAILAClipped = false;
mAILALastStartTime = mTime; mAILALastStartTime = mPlaybackSchedule.mTime;
if (changetype == 0) if (changetype == 0)
mAILAChangeFactor *= 0.8; //time factor mAILAChangeFactor *= 0.8; //time factor

View File

@ -3042,7 +3042,8 @@ void AudacityProject::OnToggleSWPlaythrough(const CommandContext &WXUNUSED(conte
} }
#ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT #ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
void AudacityProject::OnToggleAutomatedInputLevelAdjustment() void AudacityProject::OnToggleAutomatedInputLevelAdjustment(
const CommandContext &WXUNUSED(context) )
{ {
bool AVEnabled; bool AVEnabled;
gPrefs->Read(wxT("/AudioIO/AutomatedInputLevelAdjustment"), &AVEnabled, false); gPrefs->Read(wxT("/AudioIO/AutomatedInputLevelAdjustment"), &AVEnabled, false);

View File

@ -189,6 +189,8 @@ class MeterPanel final : public wxPanelWrapper
State SaveState(); State SaveState();
void RestoreState(const State &state); void RestoreState(const State &state);
int GetDBRange() const { return mDB ? mDBRange : -1; }
private: private:
static bool s_AcceptsFocus; static bool s_AcceptsFocus;
struct Resetter { void operator () (bool *p) const { if(p) *p = false; } }; struct Resetter { void operator () (bool *p) const { if(p) *p = false; } };