CollectionSettingsPage: add option to toggle `libebur128`-based song analysis

Much like song fingerprinting, performing EBU R 128 analysis is optional.

If you will want to enable EBU R 128 loudness normalization
(which does not depend on the presence of `libebur128`!)
you will probably want to enable it, but it is not enabled by default.

There will be support for rescanning songs for which it is missing.
This commit is contained in:
Roman Lebedev 2023-06-27 04:59:45 +03:00 committed by Jonas Kvinge
parent 29342fa9ac
commit 9a7949297e
2 changed files with 13 additions and 0 deletions

View File

@ -102,6 +102,10 @@ CollectionSettingsPage::CollectionSettingsPage(SettingsDialog *dialog, QWidget *
ui_->song_tracking->hide();
#endif
#ifndef HAVE_EBUR128
ui_->song_ebur128_loudness_analysis->hide();
#endif
}
CollectionSettingsPage::~CollectionSettingsPage() { delete ui_; }
@ -178,6 +182,7 @@ void CollectionSettingsPage::Load() {
ui_->startup_scan->setChecked(s.value("startup_scan", true).toBool());
ui_->monitor->setChecked(s.value("monitor", true).toBool());
ui_->song_tracking->setChecked(s.value("song_tracking", false).toBool());
ui_->song_ebur128_loudness_analysis->setChecked(s.value("song_ebur128_loudness_analysis", false).toBool());
ui_->mark_songs_unavailable->setChecked(ui_->song_tracking->isChecked() ? true : s.value("mark_songs_unavailable", true).toBool());
ui_->expire_unavailable_songs_days->setValue(s.value("expire_unavailable_songs", 60).toInt());
@ -224,6 +229,7 @@ void CollectionSettingsPage::Save() {
s.setValue("startup_scan", ui_->startup_scan->isChecked());
s.setValue("monitor", ui_->monitor->isChecked());
s.setValue("song_tracking", ui_->song_tracking->isChecked());
s.setValue("song_ebur128_loudness_analysis", ui_->song_ebur128_loudness_analysis->isChecked());
s.setValue("mark_songs_unavailable", ui_->song_tracking->isChecked() ? true : ui_->mark_songs_unavailable->isChecked());
s.setValue("expire_unavailable_songs", ui_->expire_unavailable_songs_days->value());

View File

@ -106,6 +106,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="song_ebur128_loudness_analysis">
<property name="text">
<string>Perform song EBU R 128 analysis (required for EBU R 128 loudness normalization)</string>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_2">