Prepare UI for "volume normalization" filter.

This commit is contained in:
LoRd_MuldeR 2011-01-24 01:13:08 +01:00
parent fb707cb257
commit 2e483cfeba
11 changed files with 293 additions and 10 deletions

View File

@ -517,6 +517,22 @@
<source>Enforce HE-AAC v2 (AAC + SBR + PS)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Volume Normalization </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Normalization Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Peak Volume (dB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reset Advanced Options </source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Encode Now!</source>
<translation type="unfinished"></translation>

View File

@ -316,7 +316,7 @@
</message>
<message>
<source> Meta Information </source>
<translation>Meta Informationen</translation>
<translation> Meta Informationen </translation>
</message>
<message>
<source>Edit</source>
@ -332,7 +332,7 @@
</message>
<message>
<source> Options </source>
<translation>Optionen</translation>
<translation> Optionen </translation>
</message>
<message>
<source>Automatically generate playlist file (.m3u)</source>
@ -348,7 +348,7 @@
</message>
<message>
<source> Encoder / Format </source>
<translation>Kodierer / Format</translation>
<translation> Kodierer / Format </translation>
</message>
<message>
<source>Lame MP3</source>
@ -372,7 +372,7 @@
</message>
<message>
<source> Rate Control Method </source>
<translation>Bitraten Steuerungsmethode</translation>
<translation> Bitraten Steuerungsmethode </translation>
</message>
<message>
<source>Quality-based (VBR)</source>
@ -388,7 +388,7 @@
</message>
<message>
<source> Quality / Bitrate </source>
<translation>Qualität / Bitrate</translation>
<translation> Qualität / Bitrate </translation>
</message>
<message>
<source>Minimum</source>
@ -404,7 +404,7 @@
</message>
<message>
<source> Encode Now!</source>
<translation>Jetzt Kodieren!</translation>
<translation> Jetzt Kodieren!</translation>
</message>
<message>
<source>About...</source>
@ -412,7 +412,7 @@
</message>
<message>
<source> Exit Program</source>
<translation>Programm Ende</translation>
<translation> Programm Ende</translation>
</message>
<message>
<source>File</source>
@ -896,7 +896,7 @@
</message>
<message>
<source> LAME Algorithm Quality </source>
<translation>LAME Algorithmus Qualität</translation>
<translation> LAME Algorithmus Qualität </translation>
</message>
<message>
<source>Faster Processing</source>
@ -928,7 +928,7 @@
</message>
<message>
<source> Bitrate Management (LAME and OggEnc2) </source>
<translation>Bitraten Verwaltung (LAME und OggEnc2)</translation>
<translation> Bitraten Verwaltung (LAME und OggEnc2) </translation>
</message>
<message>
<source>Enable Bitrate Management</source>
@ -1030,6 +1030,22 @@
<source>Enforce HE-AAC v2 (AAC + SBR + PS)</source>
<translation>Erzwinge HE-AAC v2 (AAC + SBR + PS)</translation>
</message>
<message>
<source> Volume Normalization </source>
<translation> Lautstärke Normalisieren </translation>
</message>
<message>
<source>Enable Normalization Filter</source>
<translation>Normalisierungsfilter Aktivieren</translation>
</message>
<message>
<source>Peak Volume (dB):</source>
<translation>Max. Lautstärke (dB):</translation>
</message>
<message>
<source>Reset Advanced Options </source>
<translation>Erweiterte Optionen Zurücksetzen</translation>
</message>
</context>
<context>
<name>MetaInfo</name>

View File

@ -1030,6 +1030,22 @@
<source>Enforce HE-AAC v2 (AAC + SBR + PS)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Volume Normalization </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Normalization Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Peak Volume (dB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reset Advanced Options </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MetaInfo</name>

View File

@ -1034,6 +1034,22 @@ Votre dossier TEMP est situé ici:</translation>
<source>Enforce HE-AAC v2 (AAC + SBR + PS)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Volume Normalization </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Normalization Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Peak Volume (dB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reset Advanced Options </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MetaInfo</name>

View File

@ -1030,6 +1030,22 @@
<source>Enforce HE-AAC v2 (AAC + SBR + PS)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Volume Normalization </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Normalization Filter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Peak Volume (dB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reset Advanced Options </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MetaInfo</name>

View File

@ -971,6 +971,12 @@
<layout class="QGridLayout" name="gridLayout_8">
<item row="0" column="0">
<widget class="QScrollArea" name="scrollArea">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
@ -980,7 +986,7 @@
<x>0</x>
<y>0</y>
<width>604</width>
<height>431</height>
<height>520</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_22">
@ -1617,6 +1623,151 @@
</layout>
</widget>
</item>
<item row="4" column="0">
<widget class="QGroupBox" name="groupBox_9">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="title">
<string> Volume Normalization </string>
</property>
<layout class="QGridLayout" name="gridLayout_26">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_20">
<item row="1" column="1">
<widget class="QCheckBox" name="checkBoxNormalizationFilter">
<property name="text">
<string>Enable Normalization Filter</string>
</property>
</widget>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer_25">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="6">
<spacer name="horizontalSpacer_26">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="4">
<widget class="QDoubleSpinBox" name="spinBoxNormalizationFilter">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>160</width>
<height>0</height>
</size>
</property>
<property name="minimum">
<double>-12.000000000000000</double>
</property>
<property name="maximum">
<double>0.000000000000000</double>
</property>
<property name="singleStep">
<double>0.500000000000000</double>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Peak Volume (dB):</string>
</property>
</widget>
</item>
<item row="1" column="2">
<spacer name="horizontalSpacer_27">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="5">
<spacer name="horizontalSpacer_28">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1" colspan="5">
<spacer name="verticalSpacer_11">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>8</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1" colspan="5">
<spacer name="verticalSpacer_12">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>8</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item row="6" column="0">
@ -2128,6 +2279,12 @@
<include location="../res/Icons.qrc"/>
<include location="../res/Icons.qrc"/>
<include location="../res/Icons.qrc"/>
<include location="../res/Icons.qrc"/>
<include location="../res/Icons.qrc"/>
<include location="../res/Icons.qrc"/>
<include location="../res/Icons.qrc"/>
<include location="../res/Icons.qrc"/>
<include location="../res/Icons.qrc"/>
</resources>
<connections>
<connection>
@ -2498,5 +2655,21 @@
</hint>
</hints>
</connection>
<connection>
<sender>checkBoxNormalizationFilter</sender>
<signal>clicked(bool)</signal>
<receiver>spinBoxNormalizationFilter</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>133</x>
<y>502</y>
</hint>
<hint type="destinationlabel">
<x>447</x>
<y>502</y>
</hint>
</hints>
</connection>
</connections>
</ui>

Binary file not shown.

View File

@ -217,11 +217,13 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
sliderLameAlgoQuality->setValue(m_settings->lameAlgoQuality());
spinBoxBitrateManagementMin->setValue(m_settings->bitrateManagementMinRate());
spinBoxBitrateManagementMax->setValue(m_settings->bitrateManagementMaxRate());
spinBoxNormalizationFilter->setValue(static_cast<double>(m_settings->normalizationFilterMaxVolume()) / 100.0);
comboBoxMP3ChannelMode->setCurrentIndex(m_settings->lameChannelMode());
comboBoxSamplingRate->setCurrentIndex(m_settings->samplingRate());
comboBoxNeroAACProfile->setCurrentIndex(m_settings->neroAACProfile());
while(checkBoxBitrateManagement->isChecked() != m_settings->bitrateManagementEnabled()) checkBoxBitrateManagement->click();
while(checkBoxNeroAAC2PassMode->isChecked() != m_settings->neroAACEnable2Pass()) checkBoxNeroAAC2PassMode->click();
while(checkBoxNormalizationFilter->isChecked() != m_settings->normalizationFilterEnabled()) checkBoxNormalizationFilter->click();
connect(sliderLameAlgoQuality, SIGNAL(valueChanged(int)), this, SLOT(updateLameAlgoQuality(int)));
connect(checkBoxBitrateManagement, SIGNAL(clicked(bool)), this, SLOT(bitrateManagementEnabledChanged(bool)));
connect(spinBoxBitrateManagementMin, SIGNAL(valueChanged(int)), this, SLOT(bitrateManagementMinChanged(int)));
@ -230,6 +232,8 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
connect(comboBoxSamplingRate, SIGNAL(currentIndexChanged(int)), this, SLOT(samplingRateChanged(int)));
connect(checkBoxNeroAAC2PassMode, SIGNAL(clicked(bool)), this, SLOT(neroAAC2PassChanged(bool)));
connect(comboBoxNeroAACProfile, SIGNAL(currentIndexChanged(int)), this, SLOT(neroAACProfileChanged(int)));
connect(checkBoxNormalizationFilter, SIGNAL(clicked(bool)), this, SLOT(normalizationEnabledChanged(bool)));
connect(spinBoxNormalizationFilter, SIGNAL(valueChanged(double)), this, SLOT(normalizationMaxVolumeChanged(double)));
connect(buttonResetAdvancedOptions, SIGNAL(clicked()), this, SLOT(resetAdvancedOptionsButtonClicked()));
updateLameAlgoQuality(sliderLameAlgoQuality->value());
@ -1692,6 +1696,22 @@ void MainWindow::neroAACProfileChanged(int value)
if(value >= 0) m_settings->neroAACProfile(value);
}
/*
* Normalization filter enabled changed
*/
void MainWindow::normalizationEnabledChanged(bool checked)
{
m_settings->normalizationFilterEnabled(checked);
}
/*
* Normalization max. volume changed
*/
void MainWindow::normalizationMaxVolumeChanged(double value)
{
m_settings->normalizationFilterMaxVolume(static_cast<int>(value * 100.0));
}
/*
* Reset all advanced options to their defaults
*/
@ -1700,11 +1720,13 @@ void MainWindow::resetAdvancedOptionsButtonClicked()
sliderLameAlgoQuality->setValue(m_settings->lameAlgoQualityDefault());
spinBoxBitrateManagementMin->setValue(m_settings->bitrateManagementMinRateDefault());
spinBoxBitrateManagementMax->setValue(m_settings->bitrateManagementMaxRateDefault());
spinBoxNormalizationFilter->setValue(static_cast<double>(m_settings->normalizationFilterMaxVolumeDefault()) / 100.0);
comboBoxMP3ChannelMode->setCurrentIndex(m_settings->lameChannelModeDefault());
comboBoxSamplingRate->setCurrentIndex(m_settings->samplingRateDefault());
comboBoxNeroAACProfile->setCurrentIndex(m_settings->neroAACProfileDefault());
while(checkBoxBitrateManagement->isChecked() != m_settings->bitrateManagementEnabledDefault()) checkBoxBitrateManagement->click();
while(checkBoxNeroAAC2PassMode->isChecked() != m_settings->neroAACEnable2PassDefault()) checkBoxNeroAAC2PassMode->click();
while(checkBoxNormalizationFilter->isChecked() != m_settings->normalizationFilterEnabledDefault()) checkBoxNormalizationFilter->click();
scrollArea->verticalScrollBar()->setValue(0);
}

View File

@ -87,6 +87,8 @@ private slots:
void channelModeChanged(int value);
void neroAACProfileChanged(int value);
void neroAAC2PassChanged(bool checked);
void normalizationEnabledChanged(bool checked);
void normalizationMaxVolumeChanged(double volume);
void resetAdvancedOptionsButtonClicked();
void sourceModelChanged(void);
void metaTagsEnabledChanged(void);

View File

@ -59,6 +59,8 @@ static const char *g_settingsId_bitrateManagementMaxRate = "AdvancedOptions/Bitr
static const char *g_settingsId_samplingRate = "AdvancedOptions/Common/Resampling";
static const char *g_settingsId_neroAACEnable2Pass = "AdvancedOptions/NeroAAC/Enable2Pass";
static const char *g_settingsId_neroAACProfile = "AdvancedOptions/NeroAAC/ForceProfile";
static const char *g_settingsId_normalizationFilterEnabled = "AdvancedOptions/VolumeNormalization/Enabled";
static const char *g_settingsId_normalizationFilterMaxVolume = "AdvancedOptions/VolumeNormalization/MaxVolume";
//Macros
#define MAKE_OPTION1(OPT,DEF) \
@ -223,3 +225,5 @@ MAKE_OPTION1(bitrateManagementMaxRate, 500)
MAKE_OPTION1(samplingRate, 0)
MAKE_OPTION3(neroAACEnable2Pass, true)
MAKE_OPTION1(neroAACProfile, 0)
MAKE_OPTION3(normalizationFilterEnabled, false)
MAKE_OPTION1(normalizationFilterMaxVolume, -50)

View File

@ -91,6 +91,8 @@ public:
MAKE_OPTION_DEC1(samplingRate)
MAKE_OPTION_DEC3(neroAACEnable2Pass)
MAKE_OPTION_DEC1(neroAACProfile)
MAKE_OPTION_DEC3(normalizationFilterEnabled)
MAKE_OPTION_DEC1(normalizationFilterMaxVolume)
//Misc
void validate(void);