diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts
index ddb82243..71445933 100644
--- a/etc/Translation/Blank.ts
+++ b/etc/Translation/Blank.ts
@@ -103,6 +103,10 @@
Available from vendor web-site as free download:
+
+ Aften − A/52 audio encoder
+
+
FLAC − Free Lossless Audio Codec
@@ -163,6 +167,14 @@
The True Audio − Lossless Audio Codec
+
+ ALAC Decoder
+
+
+
+ Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious.
+
+
MediaInfo − Media File Analysis Tool
@@ -199,10 +211,6 @@
n/a
-
- Aften − A/52 audio encoder
-
-
AudioFileModel
@@ -424,6 +432,10 @@
FLAC
+
+ Aften A/52
+
+
Rate Control Method
@@ -600,6 +612,10 @@
Custom Encoder Parameters
+
+ Lame MP3:
+
+
OggEnc2:
@@ -616,6 +632,10 @@
Warning: Custom parameters won't be checked at all. Use them at your own risk !!!
+
+ Aften A/52:
+
+
Multi-Threading
@@ -644,6 +664,86 @@
Store temporary files in your system's default TEMP directory (Recommended)
+
+ Aften A/52 Options
+
+
+
+ Film Light
+
+
+
+ Film Standard
+
+
+
+ Music Light
+
+
+
+ Music Standard
+
+
+
+ Speech
+
+
+
+ None (Default)
+
+
+
+ Auto Select
+
+
+
+ 1+1 (Ch1,Ch2)
+
+
+
+ 1/0 (C)
+
+
+
+ 2/0 (L,R)
+
+
+
+ 3/0 (L,R,C)
+
+
+
+ 2/1 (L,R,S)
+
+
+
+ 3/1 (L,R,C,S)
+
+
+
+ 2/2 (L,R,SL,SR)
+
+
+
+ 3/2 (L,R,C,SL,SR)
+
+
+
+ Audio Coding Mode:
+
+
+
+ Dynamic Range Compression:
+
+
+
+ Fast Bit Allocation (Less Accurate)
+
+
+
+ Exponent Search Size:
+
+
Reset Advanced Options
@@ -1272,18 +1372,6 @@
The LameXP shell integration has been re-enabled.
-
- Aften A/52
-
-
-
- Lame MP3:
-
-
-
- Aften A/52:
-
-
MetaInfo
diff --git a/etc/Translation/LameXP_DE.ts b/etc/Translation/LameXP_DE.ts
index 93e8808a..9d270468 100644
--- a/etc/Translation/LameXP_DE.ts
+++ b/etc/Translation/LameXP_DE.ts
@@ -201,7 +201,15 @@
Aften − A/52 audio encoder
-
+ Aften − A/52 Audio-Kodierer
+
+
+ ALAC Decoder
+ ALAC Dekodierer
+
+
+ Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious.
+ Copyright (c) 2004 David Hammerton. Unter Mitwirkung von Cody Brocious.
@@ -1275,15 +1283,95 @@
Aften A/52
-
+
Lame MP3:
-
+
Aften A/52:
-
+
+
+
+ Aften A/52 Options
+ Aften A/52 Optionen
+
+
+ Film Light
+ Film (Gering)
+
+
+ Film Standard
+ Film (Normal)
+
+
+ Music Light
+ Musik (Gering)
+
+
+ Music Standard
+ Musik (Normal)
+
+
+ Speech
+ Sprache
+
+
+ None (Default)
+ Keine (Standard)
+
+
+ Auto Select
+ Automatisch
+
+
+ 1+1 (Ch1,Ch2)
+
+
+
+ 1/0 (C)
+
+
+
+ 2/0 (L,R)
+
+
+
+ 3/0 (L,R,C)
+
+
+
+ 2/1 (L,R,S)
+
+
+
+ 3/1 (L,R,C,S)
+
+
+
+ 2/2 (L,R,SL,SR)
+
+
+
+ 3/2 (L,R,C,SL,SR)
+
+
+
+ Audio Coding Mode:
+ Ton-Kodierungsmodus:
+
+
+ Dynamic Range Compression:
+ Dynamik-Kompression:
+
+
+ Fast Bit Allocation (Less Accurate)
+ Schnelle Bit-Zuteilung (weniger genau)
+
+
+ Exponent Search Size:
+ Exponenten Such-Größe:
diff --git a/etc/Translation/LameXP_ES.ts b/etc/Translation/LameXP_ES.ts
index c7de8712..c2893128 100644
--- a/etc/Translation/LameXP_ES.ts
+++ b/etc/Translation/LameXP_ES.ts
@@ -203,6 +203,14 @@
Aften − A/52 audio encoder
+
+ ALAC Decoder
+
+
+
+ Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious.
+
+
AudioFileModel
@@ -1284,6 +1292,86 @@
Aften A/52:
+
+ Aften A/52 Options
+
+
+
+ Film Light
+
+
+
+ Film Standard
+
+
+
+ Music Light
+
+
+
+ Music Standard
+
+
+
+ Speech
+
+
+
+ None (Default)
+
+
+
+ Auto Select
+
+
+
+ 1+1 (Ch1,Ch2)
+
+
+
+ 1/0 (C)
+
+
+
+ 2/0 (L,R)
+
+
+
+ 3/0 (L,R,C)
+
+
+
+ 2/1 (L,R,S)
+
+
+
+ 3/1 (L,R,C,S)
+
+
+
+ 2/2 (L,R,SL,SR)
+
+
+
+ 3/2 (L,R,C,SL,SR)
+
+
+
+ Audio Coding Mode:
+
+
+
+ Dynamic Range Compression:
+
+
+
+ Fast Bit Allocation (Less Accurate)
+
+
+
+ Exponent Search Size:
+
+
MetaInfo
diff --git a/etc/Translation/LameXP_FR.ts b/etc/Translation/LameXP_FR.ts
index 1a70a382..22aaf83c 100644
--- a/etc/Translation/LameXP_FR.ts
+++ b/etc/Translation/LameXP_FR.ts
@@ -207,6 +207,14 @@
Aften − A/52 audio encoder
+
+ ALAC Decoder
+
+
+
+ Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious.
+
+
AudioFileModel
@@ -1294,6 +1302,86 @@ Ouvrir le dossier récursivement...
Aften A/52:
+
+ Aften A/52 Options
+
+
+
+ Film Light
+
+
+
+ Film Standard
+
+
+
+ Music Light
+
+
+
+ Music Standard
+
+
+
+ Speech
+
+
+
+ None (Default)
+
+
+
+ Auto Select
+
+
+
+ 1+1 (Ch1,Ch2)
+
+
+
+ 1/0 (C)
+
+
+
+ 2/0 (L,R)
+
+
+
+ 3/0 (L,R,C)
+
+
+
+ 2/1 (L,R,S)
+
+
+
+ 3/1 (L,R,C,S)
+
+
+
+ 2/2 (L,R,SL,SR)
+
+
+
+ 3/2 (L,R,C,SL,SR)
+
+
+
+ Audio Coding Mode:
+
+
+
+ Dynamic Range Compression:
+
+
+
+ Fast Bit Allocation (Less Accurate)
+
+
+
+ Exponent Search Size:
+
+
MetaInfo
diff --git a/etc/Translation/LameXP_IT.ts b/etc/Translation/LameXP_IT.ts
index ad2d1043..8257eeae 100644
--- a/etc/Translation/LameXP_IT.ts
+++ b/etc/Translation/LameXP_IT.ts
@@ -203,6 +203,14 @@
Aften − A/52 audio encoder
+
+ ALAC Decoder
+
+
+
+ Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious.
+
+
AudioFileModel
@@ -1285,6 +1293,86 @@
Aften A/52:
+
+ Aften A/52 Options
+
+
+
+ Film Light
+
+
+
+ Film Standard
+
+
+
+ Music Light
+
+
+
+ Music Standard
+
+
+
+ Speech
+
+
+
+ None (Default)
+
+
+
+ Auto Select
+
+
+
+ 1+1 (Ch1,Ch2)
+
+
+
+ 1/0 (C)
+
+
+
+ 2/0 (L,R)
+
+
+
+ 3/0 (L,R,C)
+
+
+
+ 2/1 (L,R,S)
+
+
+
+ 3/1 (L,R,C,S)
+
+
+
+ 2/2 (L,R,SL,SR)
+
+
+
+ 3/2 (L,R,C,SL,SR)
+
+
+
+ Audio Coding Mode:
+
+
+
+ Dynamic Range Compression:
+
+
+
+ Fast Bit Allocation (Less Accurate)
+
+
+
+ Exponent Search Size:
+
+
MetaInfo
diff --git a/etc/Translation/LameXP_KR.ts b/etc/Translation/LameXP_KR.ts
index 330f8f3b..aaacdb97 100644
--- a/etc/Translation/LameXP_KR.ts
+++ b/etc/Translation/LameXP_KR.ts
@@ -203,6 +203,14 @@
Aften − A/52 audio encoder
+
+ ALAC Decoder
+
+
+
+ Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious.
+
+
AudioFileModel
@@ -1284,6 +1292,86 @@
Aften A/52:
+
+ Aften A/52 Options
+
+
+
+ Film Light
+
+
+
+ Film Standard
+
+
+
+ Music Light
+
+
+
+ Music Standard
+
+
+
+ Speech
+
+
+
+ None (Default)
+
+
+
+ Auto Select
+
+
+
+ 1+1 (Ch1,Ch2)
+
+
+
+ 1/0 (C)
+
+
+
+ 2/0 (L,R)
+
+
+
+ 3/0 (L,R,C)
+
+
+
+ 2/1 (L,R,S)
+
+
+
+ 3/1 (L,R,C,S)
+
+
+
+ 2/2 (L,R,SL,SR)
+
+
+
+ 3/2 (L,R,C,SL,SR)
+
+
+
+ Audio Coding Mode:
+
+
+
+ Dynamic Range Compression:
+
+
+
+ Fast Bit Allocation (Less Accurate)
+
+
+
+ Exponent Search Size:
+
+
MetaInfo
diff --git a/etc/Translation/LameXP_RU.ts b/etc/Translation/LameXP_RU.ts
index 33b1b010..ec391e4f 100644
--- a/etc/Translation/LameXP_RU.ts
+++ b/etc/Translation/LameXP_RU.ts
@@ -203,6 +203,14 @@
Aften − A/52 audio encoder
+
+ ALAC Decoder
+
+
+
+ Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious.
+
+
AudioFileModel
@@ -1286,6 +1294,86 @@
Aften A/52:
+
+ Aften A/52 Options
+
+
+
+ Film Light
+
+
+
+ Film Standard
+
+
+
+ Music Light
+
+
+
+ Music Standard
+
+
+
+ Speech
+
+
+
+ None (Default)
+
+
+
+ Auto Select
+
+
+
+ 1+1 (Ch1,Ch2)
+
+
+
+ 1/0 (C)
+
+
+
+ 2/0 (L,R)
+
+
+
+ 3/0 (L,R,C)
+
+
+
+ 2/1 (L,R,S)
+
+
+
+ 3/1 (L,R,C,S)
+
+
+
+ 2/2 (L,R,SL,SR)
+
+
+
+ 3/2 (L,R,C,SL,SR)
+
+
+
+ Audio Coding Mode:
+
+
+
+ Dynamic Range Compression:
+
+
+
+ Fast Bit Allocation (Less Accurate)
+
+
+
+ Exponent Search Size:
+
+
MetaInfo
diff --git a/etc/Translation/LameXP_UK.ts b/etc/Translation/LameXP_UK.ts
index 58384439..3b4e8dc3 100644
--- a/etc/Translation/LameXP_UK.ts
+++ b/etc/Translation/LameXP_UK.ts
@@ -203,6 +203,14 @@
Aften − A/52 audio encoder
+
+ ALAC Decoder
+
+
+
+ Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious.
+
+
AudioFileModel
@@ -1284,6 +1292,86 @@
Aften A/52:
+
+ Aften A/52 Options
+
+
+
+ Film Light
+
+
+
+ Film Standard
+
+
+
+ Music Light
+
+
+
+ Music Standard
+
+
+
+ Speech
+
+
+
+ None (Default)
+
+
+
+ Auto Select
+
+
+
+ 1+1 (Ch1,Ch2)
+
+
+
+ 1/0 (C)
+
+
+
+ 2/0 (L,R)
+
+
+
+ 3/0 (L,R,C)
+
+
+
+ 2/1 (L,R,S)
+
+
+
+ 3/1 (L,R,C,S)
+
+
+
+ 2/2 (L,R,SL,SR)
+
+
+
+ 3/2 (L,R,C,SL,SR)
+
+
+
+ Audio Coding Mode:
+
+
+
+ Dynamic Range Compression:
+
+
+
+ Fast Bit Allocation (Less Accurate)
+
+
+
+ Exponent Search Size:
+
+
MetaInfo
diff --git a/etc/Translation/update.lst b/etc/Translation/update.lst
index 6246678f..dcaf58f2 100644
--- a/etc/Translation/update.lst
+++ b/etc/Translation/update.lst
@@ -33,6 +33,7 @@
..\..\src\Dialog_WorkingBanner.cpp
..\..\src\Encoder_AAC.cpp
..\..\src\Encoder_Abstract.cpp
+..\..\src\Encoder_AC3.cpp
..\..\src\Encoder_FLAC.cpp
..\..\src\Encoder_MP3.cpp
..\..\src\Encoder_Vorbis.cpp
@@ -92,6 +93,7 @@
..\..\src\Dialog_WorkingBanner.h
..\..\src\Encoder_AAC.h
..\..\src\Encoder_Abstract.h
+..\..\src\Encoder_AC3.h
..\..\src\Encoder_FLAC.h
..\..\src\Encoder_MP3.h
..\..\src\Encoder_Vorbis.h
diff --git a/gui/MainWindow.ui b/gui/MainWindow.ui
index ac988334..91463403 100644
--- a/gui/MainWindow.ui
+++ b/gui/MainWindow.ui
@@ -1068,7 +1068,7 @@
0
0
604
- 1117
+ 1244
@@ -1705,7 +1705,7 @@
- -
+
-
@@ -1850,7 +1850,7 @@
- -
+
-
@@ -2028,7 +2028,7 @@
- -
+
-
@@ -2237,7 +2237,7 @@
- -
+
-
@@ -2401,7 +2401,7 @@
- -
+
-
@@ -2531,6 +2531,258 @@
+ -
+
+
+
+ 50
+ false
+
+
+
+ Aften A/52 Options
+
+
+ -
+
+ -
+
+
+ 5
+
+ -
+
+ Film Light
+
+
+ -
+
+ Film Standard
+
+
+ -
+
+ Music Light
+
+
+ -
+
+ Music Standard
+
+
+ -
+
+ Speech
+
+
+ -
+
+ None (Default)
+
+
+
+
+ -
+
+ -
+
+ Auto Select
+
+
+ -
+
+ 1+1 (Ch1,Ch2)
+
+
+ -
+
+ 1/0 (C)
+
+
+ -
+
+ 2/0 (L,R)
+
+
+ -
+
+ 3/0 (L,R,C)
+
+
+ -
+
+ 2/1 (L,R,S)
+
+
+ -
+
+ 3/1 (L,R,C,S)
+
+
+ -
+
+ 2/2 (L,R,SL,SR)
+
+
+ -
+
+ 3/2 (L,R,C,SL,SR)
+
+
+
+
+ -
+
+
+ Audio Coding Mode:
+
+
+
+ -
+
+
+ Dynamic Range Compression:
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 10
+ 20
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 10
+ 20
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+ QSizePolicy::Fixed
+
+
+
+ 20
+ 8
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+ QSizePolicy::Fixed
+
+
+
+ 20
+ 8
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+ QSizePolicy::Fixed
+
+
+
+ 20
+ 6
+
+
+
+
+ -
+
+
+ Fast Bit Allocation (Less Accurate)
+
+
+
+ -
+
+
+ Exponent Search Size:
+
+
+
+ -
+
+
+ 1
+
+
+ 32
+
+
+ 8
+
+
+
+
+
+
+
+
-
@@ -3191,6 +3443,9 @@
+
+
+
diff --git a/res/localization/LameXP_DE.qm b/res/localization/LameXP_DE.qm
index 9e5b5a23..a8fa3d5f 100644
Binary files a/res/localization/LameXP_DE.qm and b/res/localization/LameXP_DE.qm differ
diff --git a/src/Config.h b/src/Config.h
index 9b8f8f3e..2c1d69d0 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -29,8 +29,8 @@
#define VER_LAMEXP_MINOR_HI 0
#define VER_LAMEXP_MINOR_LO 2
#define VER_LAMEXP_TYPE Alpha
-#define VER_LAMEXP_PATCH 12
-#define VER_LAMEXP_BUILD 488
+#define VER_LAMEXP_PATCH 13
+#define VER_LAMEXP_BUILD 492
///////////////////////////////////////////////////////////////////////////////
// Tools versions
diff --git a/src/Dialog_About.cpp b/src/Dialog_About.cpp
index f8583d3c..172c6f70 100644
--- a/src/Dialog_About.cpp
+++ b/src/Dialog_About.cpp
@@ -127,7 +127,7 @@ AboutDialog::AboutDialog(SettingsModel *settings, QWidget *parent, bool firstSta
aboutText += "GNU General Public License for more details. ";
aboutText += "You should have received a copy of the GNU General Public License ";
aboutText += "along with this program; if not, write to the Free Software ";
- aboutText += "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ";
+ aboutText += "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110−1301, USA. ";
aboutText += "";
aboutText += " ";
aboutText += QString("%1 ").arg(tr("Note: LameXP is free software. Do not pay money to obtain or use LameXP! If some third-party website tries to make you pay for downloading LameXP, you should not respond to the offer !!!"));
@@ -432,6 +432,13 @@ void AboutDialog::showMoreAbout(void)
"http://tta.sourceforge.net/"
);
moreAboutText += makeToolText
+ (
+ tr("ALAC Decoder"),
+ "alac.exe", "v?.?.?",
+ tr("Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious."),
+ "http://craz.net/programs/itunes/alac.html"
+ );
+ moreAboutText += makeToolText
(
tr("MediaInfo − Media File Analysis Tool"),
"mediainfo.exe", "v?.?.??",
@@ -452,8 +459,6 @@ void AboutDialog::showMoreAbout(void)
tr("Released under the terms of the GNU Lesser General Public License."),
"http://www.gnupg.org/"
);
-
-
moreAboutText += makeToolText
(
tr("GNU Wget − Software for retrieving files using HTTP"),
@@ -461,8 +466,6 @@ void AboutDialog::showMoreAbout(void)
tr("Released under the terms of the GNU Lesser General Public License."),
"http://www.gnu.org/software/wget/"
);
-
-
moreAboutText += makeToolText
(
tr("Silk Icons − Over 700 icons in PNG format"),
@@ -470,9 +473,9 @@ void AboutDialog::showMoreAbout(void)
tr("By Mark James, released under the Creative Commons 'by' License."),
"http://www.famfamfam.com/lab/icons/silk/"
);
- moreAboutText += QString("
%1 ").arg
+ moreAboutText += QString(" %1 ").arg
(
- tr("LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of thrird-party software used in LameXP belongs to the individual authors.")
+ tr("LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of thrird-party software used in LameXP belongs to the individual authors.").replace("-", "−")
);
QMessageBox *moreAboutBox = new QMessageBox(this);
diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp
index b66a75c1..1597cec4 100644
--- a/src/Dialog_MainWindow.cpp
+++ b/src/Dialog_MainWindow.cpp
@@ -214,11 +214,15 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
spinBoxNormalizationFilter->setValue(static_cast(m_settings->normalizationFilterMaxVolume()) / 100.0);
spinBoxToneAdjustBass->setValue(static_cast(m_settings->toneAdjustBass()) / 100.0);
spinBoxToneAdjustTreble->setValue(static_cast(m_settings->toneAdjustTreble()) / 100.0);
+ spinBoxAftenSearchSize->setValue(m_settings->aftenExponentSearchSize());
comboBoxMP3ChannelMode->setCurrentIndex(m_settings->lameChannelMode());
comboBoxSamplingRate->setCurrentIndex(m_settings->samplingRate());
comboBoxNeroAACProfile->setCurrentIndex(m_settings->neroAACProfile());
+ comboBoxAftenCodingMode->setCurrentIndex(m_settings->aftenAudioCodingMode());
+ comboBoxAftenDRCMode->setCurrentIndex(m_settings->aftenDynamicRangeCompression());
while(checkBoxBitrateManagement->isChecked() != m_settings->bitrateManagementEnabled()) checkBoxBitrateManagement->click();
while(checkBoxNeroAAC2PassMode->isChecked() != m_settings->neroAACEnable2Pass()) checkBoxNeroAAC2PassMode->click();
+ while(checkBoxAftenFastAllocation->isChecked() != m_settings->aftenFastBitAllocation()) checkBoxAftenFastAllocation->click();
while(checkBoxNormalizationFilter->isChecked() != m_settings->normalizationFilterEnabled()) checkBoxNormalizationFilter->click();
while(checkBoxAutoDetectInstances->isChecked() != (m_settings->maximumInstances() < 1)) checkBoxAutoDetectInstances->click();
while(checkBoxUseSystemTempFolder->isChecked() == m_settings->customTempPathEnabled()) checkBoxUseSystemTempFolder->click();
@@ -237,6 +241,10 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
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(comboBoxAftenCodingMode, SIGNAL(currentIndexChanged(int)), this, SLOT(aftenCodingModeChanged(int)));
+ connect(comboBoxAftenDRCMode, SIGNAL(currentIndexChanged(int)), this, SLOT(aftenDRCModeChanged(int)));
+ connect(spinBoxAftenSearchSize, SIGNAL(valueChanged(int)), this, SLOT(aftenSearchSizeChanged(int)));
+ connect(checkBoxAftenFastAllocation, SIGNAL(clicked(bool)), this, SLOT(aftenFastAllocationChanged(bool)));
connect(spinBoxNormalizationFilter, SIGNAL(valueChanged(double)), this, SLOT(normalizationMaxVolumeChanged(double)));
connect(spinBoxToneAdjustBass, SIGNAL(valueChanged(double)), this, SLOT(toneAdjustBassChanged(double)));
connect(spinBoxToneAdjustTreble, SIGNAL(valueChanged(double)), this, SLOT(toneAdjustTrebleChanged(double)));
@@ -652,12 +660,14 @@ void MainWindow::changeEvent(QEvent *e)
{
if(e->type() == QEvent::LanguageChange)
{
- int comboBoxIndex[3];
+ int comboBoxIndex[5];
//Backup combobox indices, as retranslateUi() resets
comboBoxIndex[0] = comboBoxMP3ChannelMode->currentIndex();
comboBoxIndex[1] = comboBoxSamplingRate->currentIndex();
comboBoxIndex[2] = comboBoxNeroAACProfile->currentIndex();
+ comboBoxIndex[3] = comboBoxAftenCodingMode->currentIndex();
+ comboBoxIndex[4] = comboBoxAftenDRCMode->currentIndex();
//Re-translate from UIC
Ui::MainWindow::retranslateUi(this);
@@ -666,6 +676,8 @@ void MainWindow::changeEvent(QEvent *e)
comboBoxMP3ChannelMode->setCurrentIndex(comboBoxIndex[0]);
comboBoxSamplingRate->setCurrentIndex(comboBoxIndex[1]);
comboBoxNeroAACProfile->setCurrentIndex(comboBoxIndex[2]);
+ comboBoxAftenCodingMode->setCurrentIndex(comboBoxIndex[3]);
+ comboBoxAftenDRCMode->setCurrentIndex(comboBoxIndex[4]);
//Update the window title
if(LAMEXP_DEBUG)
@@ -1897,7 +1909,7 @@ void MainWindow::updateBitrate(int value)
labelBitrate->setText(tr("Compression %1").arg(value));
break;
case SettingsModel::AC3Encoder:
- labelBitrate->setText(tr("Quality Level %1").arg(min(1023, max(0, value * 64))));
+ labelBitrate->setText(tr("Quality Level %1").arg(min(1024, max(0, value * 64))));
break;
case SettingsModel::PCMEncoder:
labelBitrate->setText(tr("Uncompressed"));
@@ -1937,7 +1949,7 @@ void MainWindow::updateBitrate(int value)
labelBitrate->setText(tr("Compression %1").arg(value));
break;
case SettingsModel::AC3Encoder:
- labelBitrate->setText(QString("≈ %1 kbps").arg(SettingsModel::ac3Bitrates[value]));
+ labelBitrate->setText(QString("%1 kbps").arg(SettingsModel::ac3Bitrates[value]));
break;
case SettingsModel::PCMEncoder:
labelBitrate->setText(tr("Uncompressed"));
@@ -2056,6 +2068,38 @@ void MainWindow::neroAACProfileChanged(int value)
if(value >= 0) m_settings->neroAACProfile(value);
}
+/*
+ * Aften audio coding mode changed
+ */
+void MainWindow::aftenCodingModeChanged(int value)
+{
+ if(value >= 0) m_settings->aftenAudioCodingMode(value);
+}
+
+/*
+ * Aften DRC mode changed
+ */
+void MainWindow::aftenDRCModeChanged(int value)
+{
+ if(value >= 0) m_settings->aftenDynamicRangeCompression(value);
+}
+
+/*
+ * Aften exponent search size changed
+ */
+void MainWindow::aftenSearchSizeChanged(int value)
+{
+ if(value >= 0) m_settings->aftenExponentSearchSize(value);
+}
+
+/*
+ * Aften fast bit allocation changed
+ */
+void MainWindow::aftenFastAllocationChanged(bool checked)
+{
+ m_settings->aftenFastBitAllocation(checked);
+}
+
/*
* Normalization filter enabled changed
*/
@@ -2196,14 +2240,18 @@ void MainWindow::resetAdvancedOptionsButtonClicked(void)
spinBoxNormalizationFilter->setValue(static_cast(m_settings->normalizationFilterMaxVolumeDefault()) / 100.0);
spinBoxToneAdjustBass->setValue(static_cast(m_settings->toneAdjustBassDefault()) / 100.0);
spinBoxToneAdjustTreble->setValue(static_cast(m_settings->toneAdjustTrebleDefault()) / 100.0);
+ spinBoxAftenSearchSize->setValue(m_settings->aftenExponentSearchSizeDefault());
comboBoxMP3ChannelMode->setCurrentIndex(m_settings->lameChannelModeDefault());
comboBoxSamplingRate->setCurrentIndex(m_settings->samplingRateDefault());
comboBoxNeroAACProfile->setCurrentIndex(m_settings->neroAACProfileDefault());
+ comboBoxAftenCodingMode->setCurrentIndex(m_settings->aftenAudioCodingModeDefault());
+ comboBoxAftenDRCMode->setCurrentIndex(m_settings->aftenDynamicRangeCompressionDefault());
while(checkBoxBitrateManagement->isChecked() != m_settings->bitrateManagementEnabledDefault()) checkBoxBitrateManagement->click();
while(checkBoxNeroAAC2PassMode->isChecked() != m_settings->neroAACEnable2PassDefault()) checkBoxNeroAAC2PassMode->click();
while(checkBoxNormalizationFilter->isChecked() != m_settings->normalizationFilterEnabledDefault()) checkBoxNormalizationFilter->click();
while(checkBoxAutoDetectInstances->isChecked() != (m_settings->maximumInstancesDefault() < 1)) checkBoxAutoDetectInstances->click();
while(checkBoxUseSystemTempFolder->isChecked() == m_settings->customTempPathEnabledDefault()) checkBoxUseSystemTempFolder->click();
+ while(checkBoxAftenFastAllocation->isChecked() != m_settings->aftenFastBitAllocationDefault()) checkBoxAftenFastAllocation->click();
lineEditCustomParamLAME->setText(m_settings->customParametersLAMEDefault());
lineEditCustomParamOggEnc->setText(m_settings->customParametersOggEncDefault());
lineEditCustomParamNeroAAC->setText(m_settings->customParametersNeroAACDefault());
diff --git a/src/Dialog_MainWindow.h b/src/Dialog_MainWindow.h
index e67db214..316c78fd 100644
--- a/src/Dialog_MainWindow.h
+++ b/src/Dialog_MainWindow.h
@@ -88,6 +88,10 @@ private slots:
void channelModeChanged(int value);
void neroAACProfileChanged(int value);
void neroAAC2PassChanged(bool checked);
+ void aftenCodingModeChanged(int value);
+ void aftenDRCModeChanged(int value);
+ void aftenSearchSizeChanged(int value);
+ void aftenFastAllocationChanged(bool checked);
void normalizationEnabledChanged(bool checked);
void normalizationMaxVolumeChanged(double volume);
void toneAdjustBassChanged(double value);
diff --git a/src/Dialog_Processing.cpp b/src/Dialog_Processing.cpp
index 4b092dbb..9ef71cd0 100644
--- a/src/Dialog_Processing.cpp
+++ b/src/Dialog_Processing.cpp
@@ -607,6 +607,10 @@ void ProcessingDialog::startNextJob(void)
ac3Encoder->setBitrate(m_settings->compressionBitrate());
ac3Encoder->setRCMode(m_settings->compressionRCMode());
ac3Encoder->setCustomParams(m_settings->customParametersAften());
+ ac3Encoder->setAudioCodingMode(m_settings->aftenAudioCodingMode());
+ ac3Encoder->setDynamicRangeCompression(m_settings->aftenDynamicRangeCompression());
+ ac3Encoder->setExponentSearchSize(m_settings->aftenExponentSearchSize());
+ ac3Encoder->setFastBitAllocation(m_settings->aftenFastBitAllocation());
encoder = ac3Encoder;
}
break;
diff --git a/src/Dialog_Update.cpp b/src/Dialog_Update.cpp
index 135d5f2b..a4435d7e 100644
--- a/src/Dialog_Update.cpp
+++ b/src/Dialog_Update.cpp
@@ -145,6 +145,12 @@ UpdateDialog::UpdateDialog(SettingsModel *settings, QWidget *parent)
labelAnimationCenter->setMovie(m_animator);
m_animator->start();
+ //Indicate beta updates
+ if(m_betaUpdates)
+ {
+ setWindowTitle(windowTitle().append(" [Beta]"));
+ }
+
//Enable button
connect(retryButton, SIGNAL(clicked()), this, SLOT(checkForUpdates()));
connect(installButton, SIGNAL(clicked()), this, SLOT(applyUpdate()));
diff --git a/src/Encoder_AC3.cpp b/src/Encoder_AC3.cpp
index 98196f6d..39c625ea 100644
--- a/src/Encoder_AC3.cpp
+++ b/src/Encoder_AC3.cpp
@@ -38,6 +38,11 @@ AC3Encoder::AC3Encoder(void)
{
throw "Error initializing FLAC encoder. Tool 'aften.exe' is not registred!";
}
+
+ m_configAudioCodingMode = 0;
+ m_configDynamicRangeCompression = 5;
+ m_configExponentSearchSize = 8;
+ m_configFastBitAllocation = false;
}
AC3Encoder::~AC3Encoder(void)
@@ -62,6 +67,23 @@ bool AC3Encoder::encode(const QString &sourceFile, const AudioFileModel &metaInf
break;
}
+ if(m_configAudioCodingMode >= 1)
+ {
+ args << "-acmod" << QString::number(m_configAudioCodingMode - 1);
+ }
+ if(m_configDynamicRangeCompression != 5)
+ {
+ args << "-dynrng" << QString::number(m_configDynamicRangeCompression);
+ }
+ if(m_configExponentSearchSize != 8)
+ {
+ args << "-exps" << QString::number(m_configExponentSearchSize);
+ }
+ if(m_configFastBitAllocation)
+ {
+ args << "-fba" << QString::number(1);
+ }
+
if(!m_configCustomParams.isEmpty()) args << m_configCustomParams.split(" ", QString::SkipEmptyParts);
args << QDir::toNativeSeparators(sourceFile);
@@ -130,6 +152,26 @@ bool AC3Encoder::encode(const QString &sourceFile, const AudioFileModel &metaInf
return true;
}
+void AC3Encoder::setAudioCodingMode(int value)
+{
+ m_configAudioCodingMode = min(8, max(0, value));
+}
+
+void AC3Encoder::setDynamicRangeCompression(int value)
+{
+ m_configDynamicRangeCompression = min(5, max(0, value));
+}
+
+void AC3Encoder::setExponentSearchSize(int value)
+{
+ m_configExponentSearchSize = min(32, max(1, value));
+}
+
+void AC3Encoder::setFastBitAllocation(bool value)
+{
+ m_configFastBitAllocation = value;
+}
+
QString AC3Encoder::extension(void)
{
return "ac3";
diff --git a/src/Encoder_AC3.h b/src/Encoder_AC3.h
index 679279aa..9ff1b018 100644
--- a/src/Encoder_AC3.h
+++ b/src/Encoder_AC3.h
@@ -38,6 +38,16 @@ public:
virtual QString extension(void);
virtual const unsigned int *requiresDownsample(void);
+ //Advanced options
+ virtual void setAudioCodingMode(int value);
+ virtual void setDynamicRangeCompression(int value);
+ virtual void setExponentSearchSize(int value);
+ virtual void setFastBitAllocation(bool value);
+
private:
const QString m_binary;
+ int m_configAudioCodingMode;
+ int m_configDynamicRangeCompression;
+ int m_configExponentSearchSize;
+ bool m_configFastBitAllocation;
};
diff --git a/src/Model_Settings.cpp b/src/Model_Settings.cpp
index 5dd9827d..876bd605 100644
--- a/src/Model_Settings.cpp
+++ b/src/Model_Settings.cpp
@@ -91,6 +91,10 @@ LAMEXP_MAKE_ID(lameChannelMode, "AdvancedOptions/LAME/ChannelMode");
LAMEXP_MAKE_ID(bitrateManagementEnabled, "AdvancedOptions/BitrateManagement/Enabled");
LAMEXP_MAKE_ID(bitrateManagementMinRate, "AdvancedOptions/BitrateManagement/MinRate");
LAMEXP_MAKE_ID(bitrateManagementMaxRate, "AdvancedOptions/BitrateManagement/MaxRate");
+LAMEXP_MAKE_ID(aftenAudioCodingMode, "AdvancedOptions/Aften/AudioCodingMode");
+LAMEXP_MAKE_ID(aftenDynamicRangeCompression, "AdvancedOptions/Aften/DynamicRangeCompression");
+LAMEXP_MAKE_ID(aftenFastBitAllocation, "AdvancedOptions/Aften/FastBitAllocation");
+LAMEXP_MAKE_ID(aftenExponentSearchSize, "AdvancedOptions/Aften/ExponentSearchSize");
LAMEXP_MAKE_ID(samplingRate, "AdvancedOptions/Common/Resampling");
LAMEXP_MAKE_ID(neroAACEnable2Pass, "AdvancedOptions/NeroAAC/Enable2Pass");
LAMEXP_MAKE_ID(neroAACProfile, "AdvancedOptions/NeroAAC/ForceProfile");
@@ -278,6 +282,10 @@ LAMEXP_MAKE_OPTION_I(bitrateManagementMaxRate, 500)
LAMEXP_MAKE_OPTION_I(samplingRate, 0)
LAMEXP_MAKE_OPTION_B(neroAACEnable2Pass, true)
LAMEXP_MAKE_OPTION_I(neroAACProfile, 0)
+LAMEXP_MAKE_OPTION_I(aftenAudioCodingMode, 0);
+LAMEXP_MAKE_OPTION_I(aftenDynamicRangeCompression, 5);
+LAMEXP_MAKE_OPTION_B(aftenFastBitAllocation, false);
+LAMEXP_MAKE_OPTION_I(aftenExponentSearchSize, 8);
LAMEXP_MAKE_OPTION_B(normalizationFilterEnabled, false)
LAMEXP_MAKE_OPTION_I(normalizationFilterMaxVolume, -50)
LAMEXP_MAKE_OPTION_I(toneAdjustBass, 0)
diff --git a/src/Model_Settings.h b/src/Model_Settings.h
index 0852a7ed..1e271a5b 100644
--- a/src/Model_Settings.h
+++ b/src/Model_Settings.h
@@ -104,6 +104,10 @@ public:
LAMEXP_MAKE_OPTION_I(samplingRate);
LAMEXP_MAKE_OPTION_B(neroAACEnable2Pass);
LAMEXP_MAKE_OPTION_I(neroAACProfile);
+ LAMEXP_MAKE_OPTION_I(aftenAudioCodingMode);
+ LAMEXP_MAKE_OPTION_I(aftenDynamicRangeCompression);
+ LAMEXP_MAKE_OPTION_B(aftenFastBitAllocation);
+ LAMEXP_MAKE_OPTION_I(aftenExponentSearchSize);
LAMEXP_MAKE_OPTION_B(normalizationFilterEnabled);
LAMEXP_MAKE_OPTION_I(normalizationFilterMaxVolume);
LAMEXP_MAKE_OPTION_I(toneAdjustBass);
diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp
index 12b7bddb..b5390628 100644
--- a/src/Thread_Initialization.cpp
+++ b/src/Thread_Initialization.cpp
@@ -54,8 +54,8 @@ g_lamexp_tools[] =
{
{"0a6252606c1ceda7b8973e5935ef72d60b8fd64d", CPU_TYPE_X86, "aften.i386.exe", 8},
{"22253052acba92a0088bbf0aa82a8c505c07b854", CPU_TYPE_SSE, "aften.sse2.exe", 8},
- {"2996a48b01b65a2c1806482654beeea7ffcf1f80", CPU_TYPE_X64, "aften.x64.exe", 8},
- {"3b41f85dde8d4a5a0f4cd5f461099d0db24610ba", CPU_TYPE_ALL, "alac.exe", UINT_MAX},
+ {"2996a48b01b65a2c1806482654beeea7ffcf1f80", CPU_TYPE_X64, "aften.x64.exe", 8},
+ {"3b41f85dde8d4a5a0f4cd5f461099d0db24610ba", CPU_TYPE_ALL, "alac.exe", 20},
{"fb74ac8b73ad8cba2c3b4e6e61f23401d630dc22", CPU_TYPE_ALL, "elevator.exe", UINT_MAX},
{"80e372d8b20be24102c18284286fcdf5fa14bd86", CPU_TYPE_ALL, "faad.exe", 27},
{"d33cd86f04bd4067e244d2804466583c7b90a4e2", CPU_TYPE_ALL, "flac.exe", 121},
@@ -64,13 +64,13 @@ g_lamexp_tools[] =
{"d5b3b80220d85a9fd2f486e37c1fb6511f3c2d72", CPU_TYPE_ALL, "lame.exe", 3990},
{"a4e929cfaa42fa2e61a3d0c6434c77a06d45aef3", CPU_TYPE_ALL, "mac.exe", 406},
{"a9aa99209fb9ad6ceb97b7a46774fc97141d3dce", CPU_TYPE_GEN, "mediainfo.i386.exe", 745},
- {"9f6b81378e4c408fe5ded8a26ddd0d6c705d81cb", CPU_TYPE_X64, "mediainfo.x64.exe", 745},
+ {"9f6b81378e4c408fe5ded8a26ddd0d6c705d81cb", CPU_TYPE_X64, "mediainfo.x64.exe", 745},
{"aa89763a5ba4d1a5986549b9ee53e005c51940c1", CPU_TYPE_ALL, "mpcdec.exe", 435},
{"c327400fcee268f581d8c03e2a5cbbe8031abb6f", CPU_TYPE_ALL, "mpg123.exe", 1133},
{"8dd7138714c3bcb39f5a3213413addba13d06f1e", CPU_TYPE_ALL, "oggdec.exe", UINT_MAX},
{"97fed9ab0657baa36b6c7764461d66318654dbe6", CPU_TYPE_X86, "oggenc2.i386.exe", 287603},
{"e6dc1f31ce822588fa9cf52a341cebffd526546c", CPU_TYPE_SSE, "oggenc2.sse2.exe", 287603},
- {"79aa9da24b2a0728cdf0a6927be316b864595b83", CPU_TYPE_X64, "oggenc2.x64.exe", 287603},
+ {"79aa9da24b2a0728cdf0a6927be316b864595b83", CPU_TYPE_X64, "oggenc2.x64.exe", 287603},
{"0d9035bb62bdf46a2785261f8be5a4a0972abd15", CPU_TYPE_ALL, "shorten.exe", 361},
{"50ead3b852cbfc067a402e6c2d0d0d8879663dec", CPU_TYPE_ALL, "sox.exe", 1432},
{"8671e16497a2d217d3707d4aa418678d02b16bcc", CPU_TYPE_ALL, "speexdec.exe", 12},