From dcf4181974b7ee0d12207cf6bfdf68a265c71d63 Mon Sep 17 00:00:00 2001 From: lordmulder Date: Sun, 23 Jan 2011 23:03:44 +0100 Subject: [PATCH] Make sampling rate option work with Vorbis encoder. --- gui/MainWindow.ui | 45 +++++++++++++++++++++++++++++++++++++-- src/Config.h | 2 +- src/Dialog_MainWindow.cpp | 16 ++++++++++++++ src/Dialog_MainWindow.h | 1 + src/Dialog_Processing.cpp | 1 + src/Encoder_Vorbis.cpp | 11 ++++++++++ src/Encoder_Vorbis.h | 3 ++- 7 files changed, 75 insertions(+), 4 deletions(-) diff --git a/gui/MainWindow.ui b/gui/MainWindow.ui index 71fb950c..4d5e0921 100644 --- a/gui/MainWindow.ui +++ b/gui/MainWindow.ui @@ -980,7 +980,7 @@ 0 0 604 - 399 + 431 @@ -1619,7 +1619,7 @@ - + Qt::Vertical @@ -1635,6 +1635,46 @@ + + + + + + + 175 + 0 + + + + + 50 + false + + + + Reset Advanced Options + + + + :/icons/bomb.png:/icons/bomb.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + @@ -2087,6 +2127,7 @@ + diff --git a/src/Config.h b/src/Config.h index 144fbd3d..37da620f 100644 --- a/src/Config.h +++ b/src/Config.h @@ -25,7 +25,7 @@ #define VER_LAMEXP_MAJOR 4 #define VER_LAMEXP_MINOR_HI 0 #define VER_LAMEXP_MINOR_LO 0 -#define VER_LAMEXP_BUILD 251 +#define VER_LAMEXP_BUILD 252 #define VER_LAMEXP_SUFFIX Beta-1 /* diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp index 4cef99db..cc00a082 100644 --- a/src/Dialog_MainWindow.cpp +++ b/src/Dialog_MainWindow.cpp @@ -229,6 +229,7 @@ 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(buttonResetAdvancedOptions, SIGNAL(clicked()), this, SLOT(resetAdvancedOptionsButtonClicked())); updateLameAlgoQuality(sliderLameAlgoQuality->value()); //Activate file menu actions @@ -1688,6 +1689,21 @@ void MainWindow::neroAACProfileChanged(int value) if(value >= 0) m_settings->neroAACProfile(value); } +/* + * Reset all advanced options to their defaults + */ +void MainWindow::resetAdvancedOptionsButtonClicked() +{ + sliderLameAlgoQuality->setValue(m_settings->lameAlgoQualityDefault()); + spinBoxBitrateManagementMin->setValue(m_settings->bitrateManagementMinRateDefault()); + spinBoxBitrateManagementMax->setValue(m_settings->bitrateManagementMaxRateDefault()); + 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(); +} + /* * Model reset */ diff --git a/src/Dialog_MainWindow.h b/src/Dialog_MainWindow.h index 8c574e7c..0d8b6e9e 100644 --- a/src/Dialog_MainWindow.h +++ b/src/Dialog_MainWindow.h @@ -87,6 +87,7 @@ private slots: void channelModeChanged(int value); void neroAACProfileChanged(int value); void neroAAC2PassChanged(bool checked); + void resetAdvancedOptionsButtonClicked(); void sourceModelChanged(void); void metaTagsEnabledChanged(void); void playlistEnabledChanged(void); diff --git a/src/Dialog_Processing.cpp b/src/Dialog_Processing.cpp index f4cf9822..e5a46e89 100644 --- a/src/Dialog_Processing.cpp +++ b/src/Dialog_Processing.cpp @@ -454,6 +454,7 @@ void ProcessingDialog::startNextJob(void) { vorbisEncoder->setBitrateLimits(m_settings->bitrateManagementMinRate(), m_settings->bitrateManagementMaxRate()); } + vorbisEncoder->setSamplingRate(SettingsModel::samplingRates[m_settings->samplingRate()]); encoder = vorbisEncoder; } break; diff --git a/src/Encoder_Vorbis.cpp b/src/Encoder_Vorbis.cpp index 6bc17fb1..e6d8caad 100644 --- a/src/Encoder_Vorbis.cpp +++ b/src/Encoder_Vorbis.cpp @@ -44,6 +44,7 @@ VorbisEncoder::VorbisEncoder(void) m_configBitrateMaximum = 0; m_configBitrateMinimum = 0; + m_configSamplingRate = 0; } VorbisEncoder::~VorbisEncoder(void) @@ -77,6 +78,11 @@ bool VorbisEncoder::encode(const QString &sourceFile, const AudioFileModel &meta args << "--max-bitrate" << QString::number(min(max(m_configBitrateMaximum, 32), 500)); } + if(m_configSamplingRate > 0) + { + args << "--resample" << QString::number(m_configSamplingRate) << "--converter" << QString::number(0); + } + if(!metaInfo.fileName().isEmpty()) args << "-t" << metaInfo.fileName(); if(!metaInfo.fileArtist().isEmpty()) args << "-a" << metaInfo.fileArtist(); if(!metaInfo.fileAlbum().isEmpty()) args << "-l" << metaInfo.fileAlbum(); @@ -182,3 +188,8 @@ void VorbisEncoder::setBitrateLimits(int minimumBitrate, int maximumBitrate) m_configBitrateMinimum = minimumBitrate; m_configBitrateMaximum = maximumBitrate; } + +void VorbisEncoder::setSamplingRate(int value) +{ + m_configSamplingRate = value; +} diff --git a/src/Encoder_Vorbis.h b/src/Encoder_Vorbis.h index 71f5185b..04d2fb64 100644 --- a/src/Encoder_Vorbis.h +++ b/src/Encoder_Vorbis.h @@ -37,6 +37,7 @@ public: virtual bool isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion); virtual QString extension(void); virtual void setBitrateLimits(int minimumBitrate, int maximumBitrate); + virtual void setSamplingRate(int value); private: const QString m_binary_i386; @@ -44,5 +45,5 @@ private: const QString m_binary_x64; int m_configBitrateMaximum; int m_configBitrateMinimum; - + int m_configSamplingRate; };