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("").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 
%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},