diff --git a/src/analyzer/analyzerqueue.cpp b/src/analyzer/analyzerqueue.cpp index 064cba82214e..33442acc0b04 100644 --- a/src/analyzer/analyzerqueue.cpp +++ b/src/analyzer/analyzerqueue.cpp @@ -457,6 +457,9 @@ AnalyzerQueue* AnalyzerQueue::createAnalysisFeatureAnalyzerQueue( UserSettingsPointer pConfig, TrackCollection* pTrackCollection) { AnalyzerQueue* ret = new AnalyzerQueue(pTrackCollection); + if (pConfig->getValue(ConfigKey("[Library]", "EnableWaveformGenerationWithAnalysis"))) { + ret->addAnalyzer(new AnalyzerWaveform(pConfig)); + } ret->addAnalyzer(new AnalyzerGain(pConfig)); ret->addAnalyzer(new AnalyzerEbur128(pConfig)); #ifdef __VAMP__ diff --git a/src/preferences/dialog/dlgprefwaveform.cpp b/src/preferences/dialog/dlgprefwaveform.cpp index 75e4b212aa55..bf85e0f7f1d5 100644 --- a/src/preferences/dialog/dlgprefwaveform.cpp +++ b/src/preferences/dialog/dlgprefwaveform.cpp @@ -112,12 +112,16 @@ void DlgPrefWaveform::slotUpdate() { WaveformSettings waveformSettings(m_pConfig); enableWaveformCaching->setChecked(waveformSettings.waveformCachingEnabled()); + enableWaveformGenerationWithAnalysis->setChecked( + waveformSettings.waveformGenerationWithAnalysisEnabled()); calculateCachedWaveformDiskUsage(); } void DlgPrefWaveform::slotApply() { WaveformSettings waveformSettings(m_pConfig); waveformSettings.setWaveformCachingEnabled(enableWaveformCaching->isChecked()); + waveformSettings.setWaveformGenerationWithAnalysisEnabled( + enableWaveformGenerationWithAnalysis->isChecked()); } void DlgPrefWaveform::slotResetToDefaults() { @@ -154,6 +158,7 @@ void DlgPrefWaveform::slotResetToDefaults() { // Waveform caching enabled. enableWaveformCaching->setChecked(true); + enableWaveformGenerationWithAnalysis->setChecked(false); } void DlgPrefWaveform::slotSetFrameRate(int frameRate) { diff --git a/src/preferences/dialog/dlgprefwaveformdlg.ui b/src/preferences/dialog/dlgprefwaveformdlg.ui index 9b6b9d888c25..c726f005d563 100644 --- a/src/preferences/dialog/dlgprefwaveformdlg.ui +++ b/src/preferences/dialog/dlgprefwaveformdlg.ui @@ -7,7 +7,7 @@ 0 0 536 - 390 + 445 @@ -422,7 +422,14 @@ - + + + + Clear Cached Waveforms + + + + Mixxx caches the waveforms of your tracks on disk the first time you load a track. This reduces CPU usage when you are playing live but requires extra disk space. @@ -432,27 +439,27 @@ - - + + - Clear Cached Waveforms + PLACEHOLDER FOR DISK USAGE + + + true - Enable Waveform Caching + Enable waveform caching - - + + - PLACEHOLDER FOR DISK USAGE - - - true + Generate waveforms when analyzing library diff --git a/src/preferences/waveformsettings.h b/src/preferences/waveformsettings.h index e73f5d94a7a6..d0c2268a5c01 100644 --- a/src/preferences/waveformsettings.h +++ b/src/preferences/waveformsettings.h @@ -15,6 +15,16 @@ class WaveformSettings { ConfigKey("[Library]", "EnableWaveformCaching"), enabled); } + bool waveformGenerationWithAnalysisEnabled() const { + return m_pConfig->getValue( + ConfigKey("[Library]", "EnableWaveformGenerationWithAnalysis"), true); + } + + void setWaveformGenerationWithAnalysisEnabled(bool enabled) { + m_pConfig->setValue( + ConfigKey("[Library]", "EnableWaveformGenerationWithAnalysis"), enabled); + } + private: UserSettingsPointer m_pConfig; };