More refactoring of the SettingsModel. Also moved encoder reset function from MainWindow to EncoderRegistry.

This commit is contained in:
LoRd_MuldeR 2013-10-03 15:56:10 +02:00
parent d76c4a1702
commit 4faf3a2e40
6 changed files with 141 additions and 94 deletions

View File

@ -34,7 +34,7 @@
#define VER_LAMEXP_MINOR_LO 9 #define VER_LAMEXP_MINOR_LO 9
#define VER_LAMEXP_TYPE Alpha #define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 1 #define VER_LAMEXP_PATCH 1
#define VER_LAMEXP_BUILD 1345 #define VER_LAMEXP_BUILD 1346
#define VER_LAMEXP_CONFG 1338 #define VER_LAMEXP_CONFG 1338
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////

View File

@ -164,7 +164,6 @@ while(0)
#define FSLINK(PATH) QString("<a href=\"file:///%1\">%2</a>").arg(PATH).arg(QString(PATH).replace("-", "&minus;")) #define FSLINK(PATH) QString("<a href=\"file:///%1\">%2</a>").arg(PATH).arg(QString(PATH).replace("-", "&minus;"))
//#define USE_NATIVE_FILE_DIALOG (lamexp_themes_enabled() || ((QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) < QSysInfo::WV_XP)) //#define USE_NATIVE_FILE_DIALOG (lamexp_themes_enabled() || ((QSysInfo::windowsVersion() & QSysInfo::WV_NT_based) < QSysInfo::WV_XP))
#define CENTER_CURRENT_OUTPUT_FOLDER_DELAYED QTimer::singleShot(125, this, SLOT(centerOutputFolderModel())) #define CENTER_CURRENT_OUTPUT_FOLDER_DELAYED QTimer::singleShot(125, this, SLOT(centerOutputFolderModel()))
#define RESET_SETTING(OBJ,NAME) (OBJ)->NAME((OBJ)->NAME##Default())
static const DWORD IDM_ABOUTBOX = 0xEFF0; static const DWORD IDM_ABOUTBOX = 0xEFF0;
@ -3447,25 +3446,7 @@ void MainWindow::compressionTabEventOccurred(QWidget *sender, QEvent *event)
PlaySound(MAKEINTRESOURCE(IDR_WAVE_BLAST), GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC); PlaySound(MAKEINTRESOURCE(IDR_WAVE_BLAST), GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC);
} }
RESET_SETTING(m_settings, compressionBitrateAacEnc); EncoderRegistry::resetAllEncoders(m_settings);
RESET_SETTING(m_settings, compressionBitrateAften);
RESET_SETTING(m_settings, compressionBitrateDcaEnc);
RESET_SETTING(m_settings, compressionBitrateLAME);
RESET_SETTING(m_settings, compressionBitrateOggEnc);
RESET_SETTING(m_settings, compressionBitrateOpusEnc);
RESET_SETTING(m_settings, compressionRCModeAacEnc);
RESET_SETTING(m_settings, compressionRCModeAften);
RESET_SETTING(m_settings, compressionRCModeLAME);
RESET_SETTING(m_settings, compressionRCModeOggEnc);
RESET_SETTING(m_settings, compressionRCModeOpusEnc);
RESET_SETTING(m_settings, compressionVbrLevelAacEnc);
RESET_SETTING(m_settings, compressionVbrLevelAften);
RESET_SETTING(m_settings, compressionVbrLevelFLAC);
RESET_SETTING(m_settings, compressionVbrLevelLAME);
RESET_SETTING(m_settings, compressionVbrLevelOggEnc);
m_settings->compressionEncoder(SettingsModel::MP3Encoder); m_settings->compressionEncoder(SettingsModel::MP3Encoder);
ui->radioButtonEncoderMP3->setChecked(true); ui->radioButtonEncoderMP3->setChecked(true);
QTimer::singleShot(0, this, SLOT(updateEncoder())); QTimer::singleShot(0, this, SLOT(updateEncoder()));

View File

@ -178,14 +178,22 @@ LAMEXP_MAKE_ID(autoUpdateLastCheck, "AutoUpdate/LastCheck");
LAMEXP_MAKE_ID(bitrateManagementEnabled, "AdvancedOptions/BitrateManagement/Enabled"); LAMEXP_MAKE_ID(bitrateManagementEnabled, "AdvancedOptions/BitrateManagement/Enabled");
LAMEXP_MAKE_ID(bitrateManagementMaxRate, "AdvancedOptions/BitrateManagement/MaxRate"); LAMEXP_MAKE_ID(bitrateManagementMaxRate, "AdvancedOptions/BitrateManagement/MaxRate");
LAMEXP_MAKE_ID(bitrateManagementMinRate, "AdvancedOptions/BitrateManagement/MinRate"); LAMEXP_MAKE_ID(bitrateManagementMinRate, "AdvancedOptions/BitrateManagement/MinRate");
LAMEXP_MAKE_ID(compressionBitrateAacEnc, "Compression/Bitrate/AacEnc"); LAMEXP_MAKE_ID(compressionAbrBitrateAacEnc, "Compression/AbrTaretBitrate/AacEnc");
LAMEXP_MAKE_ID(compressionBitrateAften, "Compression/Bitrate/Aften"); LAMEXP_MAKE_ID(compressionAbrBitrateAften, "Compression/AbrTaretBitrate/Aften");
LAMEXP_MAKE_ID(compressionBitrateDcaEnc, "Compression/Bitrate/DcaEnc"); LAMEXP_MAKE_ID(compressionAbrBitrateDcaEnc, "Compression/AbrTaretBitrate/DcaEnc");
LAMEXP_MAKE_ID(compressionBitrateFLAC, "Compression/Bitrate/FLAC"); LAMEXP_MAKE_ID(compressionAbrBitrateFLAC, "Compression/AbrTaretBitrate/FLAC");
LAMEXP_MAKE_ID(compressionBitrateLAME, "Compression/Bitrate/LAME"); LAMEXP_MAKE_ID(compressionAbrBitrateLAME, "Compression/AbrTaretBitrate/LAME");
LAMEXP_MAKE_ID(compressionBitrateOggEnc, "Compression/Bitrate/OggEnc"); LAMEXP_MAKE_ID(compressionAbrBitrateOggEnc, "Compression/AbrTaretBitrate/OggEnc");
LAMEXP_MAKE_ID(compressionBitrateOpusEnc, "Compression/Bitrate/OpusEnc"); LAMEXP_MAKE_ID(compressionAbrBitrateOpusEnc, "Compression/AbrTaretBitrate/OpusEnc");
LAMEXP_MAKE_ID(compressionBitrateWave, "Compression/Bitrate/Wave"); LAMEXP_MAKE_ID(compressionAbrBitrateWave, "Compression/AbrTaretBitrate/Wave");
LAMEXP_MAKE_ID(compressionCbrBitrateAacEnc, "Compression/CbrTaretBitrate/AacEnc");
LAMEXP_MAKE_ID(compressionCbrBitrateAften, "Compression/CbrTaretBitrate/Aften");
LAMEXP_MAKE_ID(compressionCbrBitrateDcaEnc, "Compression/CbrTaretBitrate/DcaEnc");
LAMEXP_MAKE_ID(compressionCbrBitrateFLAC, "Compression/CbrTaretBitrate/FLAC");
LAMEXP_MAKE_ID(compressionCbrBitrateLAME, "Compression/CbrTaretBitrate/LAME");
LAMEXP_MAKE_ID(compressionCbrBitrateOggEnc, "Compression/CbrTaretBitrate/OggEnc");
LAMEXP_MAKE_ID(compressionCbrBitrateOpusEnc, "Compression/CbrTaretBitrate/OpusEnc");
LAMEXP_MAKE_ID(compressionCbrBitrateWave, "Compression/CbrTaretBitrate/Wave");
LAMEXP_MAKE_ID(compressionEncoder, "Compression/Encoder"); LAMEXP_MAKE_ID(compressionEncoder, "Compression/Encoder");
LAMEXP_MAKE_ID(compressionRCModeAacEnc, "Compression/RCMode/AacEnc"); LAMEXP_MAKE_ID(compressionRCModeAacEnc, "Compression/RCMode/AacEnc");
LAMEXP_MAKE_ID(compressionRCModeAften, "Compression/RCMode/Aften"); LAMEXP_MAKE_ID(compressionRCModeAften, "Compression/RCMode/Aften");
@ -195,14 +203,14 @@ LAMEXP_MAKE_ID(compressionRCModeLAME, "Compression/RCMode/LAME");
LAMEXP_MAKE_ID(compressionRCModeOggEnc, "Compression/RCMode/OggEnc"); LAMEXP_MAKE_ID(compressionRCModeOggEnc, "Compression/RCMode/OggEnc");
LAMEXP_MAKE_ID(compressionRCModeOpusEnc, "Compression/RCMode/OpusEnc"); LAMEXP_MAKE_ID(compressionRCModeOpusEnc, "Compression/RCMode/OpusEnc");
LAMEXP_MAKE_ID(compressionRCModeWave, "Compression/RCMode/Wave"); LAMEXP_MAKE_ID(compressionRCModeWave, "Compression/RCMode/Wave");
LAMEXP_MAKE_ID(compressionVbrLevelAacEnc, "Compression/VbrLevel/AacEnc"); LAMEXP_MAKE_ID(compressionVbrQualityAacEnc, "Compression/VbrQualityLevel/AacEnc");
LAMEXP_MAKE_ID(compressionVbrLevelAften, "Compression/VbrLevel/Aften"); LAMEXP_MAKE_ID(compressionVbrQualityAften, "Compression/VbrQualityLevel/Aften");
LAMEXP_MAKE_ID(compressionVbrLevelDcaEnc, "Compression/VbrLevel/DcaEnc"); LAMEXP_MAKE_ID(compressionVbrQualityDcaEnc, "Compression/VbrQualityLevel/DcaEnc");
LAMEXP_MAKE_ID(compressionVbrLevelFLAC, "Compression/VbrLevel/FLAC"); LAMEXP_MAKE_ID(compressionVbrQualityFLAC, "Compression/VbrQualityLevel/FLAC");
LAMEXP_MAKE_ID(compressionVbrLevelLAME, "Compression/VbrLevel/LAME"); LAMEXP_MAKE_ID(compressionVbrQualityLAME, "Compression/VbrQualityLevel/LAME");
LAMEXP_MAKE_ID(compressionVbrLevelOggEnc, "Compression/VbrLevel/OggEnc"); LAMEXP_MAKE_ID(compressionVbrQualityOggEnc, "Compression/VbrQualityLevel/OggEnc");
LAMEXP_MAKE_ID(compressionVbrLevelOpusEnc, "Compression/VbrLevel/OpusEnc"); LAMEXP_MAKE_ID(compressionVbrQualityOpusEnc, "Compression/VbrQualityLevel/OpusEnc");
LAMEXP_MAKE_ID(compressionVbrLevelWave, "Compression/VbrLevel/Wave"); LAMEXP_MAKE_ID(compressionVbrQualityWave, "Compression/VbrQualityLevel/Wave");
LAMEXP_MAKE_ID(createPlaylist, "Flags/AutoCreatePlaylist"); LAMEXP_MAKE_ID(createPlaylist, "Flags/AutoCreatePlaylist");
LAMEXP_MAKE_ID(currentLanguage, "Localization/Language"); LAMEXP_MAKE_ID(currentLanguage, "Localization/Language");
LAMEXP_MAKE_ID(currentLanguageFile, "Localization/UseQMFile"); LAMEXP_MAKE_ID(currentLanguageFile, "Localization/UseQMFile");
@ -553,14 +561,22 @@ LAMEXP_MAKE_OPTION_S(autoUpdateLastCheck, "Never")
LAMEXP_MAKE_OPTION_B(bitrateManagementEnabled, false) LAMEXP_MAKE_OPTION_B(bitrateManagementEnabled, false)
LAMEXP_MAKE_OPTION_I(bitrateManagementMaxRate, 500) LAMEXP_MAKE_OPTION_I(bitrateManagementMaxRate, 500)
LAMEXP_MAKE_OPTION_I(bitrateManagementMinRate, 32) LAMEXP_MAKE_OPTION_I(bitrateManagementMinRate, 32)
LAMEXP_MAKE_OPTION_I(compressionBitrateAacEnc, 20) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateAacEnc, 20)
LAMEXP_MAKE_OPTION_I(compressionBitrateAften, 15) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateAften, 15)
LAMEXP_MAKE_OPTION_I(compressionBitrateDcaEnc, 47) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateDcaEnc, 47)
LAMEXP_MAKE_OPTION_I(compressionBitrateFLAC, 0) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateFLAC, 0)
LAMEXP_MAKE_OPTION_I(compressionBitrateLAME, 10) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateLAME, 10)
LAMEXP_MAKE_OPTION_I(compressionBitrateOggEnc, 20) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateOggEnc, 20)
LAMEXP_MAKE_OPTION_I(compressionBitrateOpusEnc, 16) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateOpusEnc, 16)
LAMEXP_MAKE_OPTION_I(compressionBitrateWave, 0) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateWave, 0)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateAacEnc, 20)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateAften, 15)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateDcaEnc, 47)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateFLAC, 0)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateLAME, 10)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateOggEnc, 20)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateOpusEnc, 16)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateWave, 0)
LAMEXP_MAKE_OPTION_I(compressionEncoder, 0) LAMEXP_MAKE_OPTION_I(compressionEncoder, 0)
LAMEXP_MAKE_OPTION_I(compressionRCModeAacEnc, 0) LAMEXP_MAKE_OPTION_I(compressionRCModeAacEnc, 0)
LAMEXP_MAKE_OPTION_I(compressionRCModeAften, 0) LAMEXP_MAKE_OPTION_I(compressionRCModeAften, 0)
@ -570,14 +586,14 @@ LAMEXP_MAKE_OPTION_I(compressionRCModeLAME, 0)
LAMEXP_MAKE_OPTION_I(compressionRCModeOggEnc, 0) LAMEXP_MAKE_OPTION_I(compressionRCModeOggEnc, 0)
LAMEXP_MAKE_OPTION_I(compressionRCModeOpusEnc, 0) LAMEXP_MAKE_OPTION_I(compressionRCModeOpusEnc, 0)
LAMEXP_MAKE_OPTION_I(compressionRCModeWave, 0) LAMEXP_MAKE_OPTION_I(compressionRCModeWave, 0)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelAacEnc, 10) LAMEXP_MAKE_OPTION_I(compressionVbrQualityAacEnc, 10)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelAften, 8) LAMEXP_MAKE_OPTION_I(compressionVbrQualityAften, 8)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelDcaEnc, 0) LAMEXP_MAKE_OPTION_I(compressionVbrQualityDcaEnc, 0)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelFLAC, 8) LAMEXP_MAKE_OPTION_I(compressionVbrQualityFLAC, 8)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelLAME, 7) LAMEXP_MAKE_OPTION_I(compressionVbrQualityLAME, 7)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelOggEnc, 5) LAMEXP_MAKE_OPTION_I(compressionVbrQualityOggEnc, 5)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelOpusEnc, 0) LAMEXP_MAKE_OPTION_I(compressionVbrQualityOpusEnc, 0)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelWave, 0) LAMEXP_MAKE_OPTION_I(compressionVbrQualityWave, 0)
LAMEXP_MAKE_OPTION_B(createPlaylist, true) LAMEXP_MAKE_OPTION_B(createPlaylist, true)
LAMEXP_MAKE_OPTION_S(currentLanguage, defaultLanguage()) LAMEXP_MAKE_OPTION_S(currentLanguage, defaultLanguage())
LAMEXP_MAKE_OPTION_S(currentLanguageFile, QString()) LAMEXP_MAKE_OPTION_S(currentLanguageFile, QString())

View File

@ -107,14 +107,22 @@ public:
LAMEXP_MAKE_OPTION_B(bitrateManagementEnabled) LAMEXP_MAKE_OPTION_B(bitrateManagementEnabled)
LAMEXP_MAKE_OPTION_I(bitrateManagementMaxRate) LAMEXP_MAKE_OPTION_I(bitrateManagementMaxRate)
LAMEXP_MAKE_OPTION_I(bitrateManagementMinRate) LAMEXP_MAKE_OPTION_I(bitrateManagementMinRate)
LAMEXP_MAKE_OPTION_I(compressionBitrateAacEnc) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateAacEnc)
LAMEXP_MAKE_OPTION_I(compressionBitrateAften) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateAften)
LAMEXP_MAKE_OPTION_I(compressionBitrateDcaEnc) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateDcaEnc)
LAMEXP_MAKE_OPTION_I(compressionBitrateFLAC) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateFLAC)
LAMEXP_MAKE_OPTION_I(compressionBitrateLAME) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateLAME)
LAMEXP_MAKE_OPTION_I(compressionBitrateOggEnc) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateOggEnc)
LAMEXP_MAKE_OPTION_I(compressionBitrateOpusEnc) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateOpusEnc)
LAMEXP_MAKE_OPTION_I(compressionBitrateWave) LAMEXP_MAKE_OPTION_I(compressionAbrBitrateWave)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateAacEnc)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateAften)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateDcaEnc)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateFLAC)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateLAME)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateOggEnc)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateOpusEnc)
LAMEXP_MAKE_OPTION_I(compressionCbrBitrateWave)
LAMEXP_MAKE_OPTION_I(compressionEncoder) LAMEXP_MAKE_OPTION_I(compressionEncoder)
LAMEXP_MAKE_OPTION_I(compressionRCModeAacEnc) LAMEXP_MAKE_OPTION_I(compressionRCModeAacEnc)
LAMEXP_MAKE_OPTION_I(compressionRCModeAften) LAMEXP_MAKE_OPTION_I(compressionRCModeAften)
@ -124,14 +132,14 @@ public:
LAMEXP_MAKE_OPTION_I(compressionRCModeOggEnc) LAMEXP_MAKE_OPTION_I(compressionRCModeOggEnc)
LAMEXP_MAKE_OPTION_I(compressionRCModeOpusEnc) LAMEXP_MAKE_OPTION_I(compressionRCModeOpusEnc)
LAMEXP_MAKE_OPTION_I(compressionRCModeWave) LAMEXP_MAKE_OPTION_I(compressionRCModeWave)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelAacEnc) LAMEXP_MAKE_OPTION_I(compressionVbrQualityAacEnc)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelAften) LAMEXP_MAKE_OPTION_I(compressionVbrQualityAften)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelDcaEnc) LAMEXP_MAKE_OPTION_I(compressionVbrQualityDcaEnc)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelFLAC) LAMEXP_MAKE_OPTION_I(compressionVbrQualityFLAC)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelLAME) LAMEXP_MAKE_OPTION_I(compressionVbrQualityLAME)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelOggEnc) LAMEXP_MAKE_OPTION_I(compressionVbrQualityOggEnc)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelOpusEnc) LAMEXP_MAKE_OPTION_I(compressionVbrQualityOpusEnc)
LAMEXP_MAKE_OPTION_I(compressionVbrLevelWave) LAMEXP_MAKE_OPTION_I(compressionVbrQualityWave)
LAMEXP_MAKE_OPTION_B(createPlaylist) LAMEXP_MAKE_OPTION_B(createPlaylist)
LAMEXP_MAKE_OPTION_S(currentLanguage) LAMEXP_MAKE_OPTION_S(currentLanguage)
LAMEXP_MAKE_OPTION_S(currentLanguageFile) LAMEXP_MAKE_OPTION_S(currentLanguageFile)

View File

@ -35,6 +35,8 @@
#include "Encoder_Wave.h" #include "Encoder_Wave.h"
#define IS_VBR(RC_MODE) ((RC_MODE) == SettingsModel::VBRMode) #define IS_VBR(RC_MODE) ((RC_MODE) == SettingsModel::VBRMode)
#define IS_ABR(RC_MODE) ((RC_MODE) == SettingsModel::ABRMode)
#define IS_CBR(RC_MODE) ((RC_MODE) == SettingsModel::CBRMode)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// Create encoder instance // Create encoder instance
@ -60,7 +62,7 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
{ {
MP3Encoder *mp3Encoder = new MP3Encoder(); MP3Encoder *mp3Encoder = new MP3Encoder();
mp3Encoder->setRCMode(rcMode = settings->compressionRCModeLAME()); mp3Encoder->setRCMode(rcMode = settings->compressionRCModeLAME());
mp3Encoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrLevelLAME() : settings->compressionBitrateLAME()); mp3Encoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrQualityLAME() : settings->compressionAbrBitrateLAME());
mp3Encoder->setAlgoQuality(settings->lameAlgoQuality()); mp3Encoder->setAlgoQuality(settings->lameAlgoQuality());
if(settings->bitrateManagementEnabled()) if(settings->bitrateManagementEnabled())
{ {
@ -81,7 +83,7 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
{ {
VorbisEncoder *vorbisEncoder = new VorbisEncoder(); VorbisEncoder *vorbisEncoder = new VorbisEncoder();
vorbisEncoder->setRCMode(rcMode = settings->compressionRCModeOggEnc()); vorbisEncoder->setRCMode(rcMode = settings->compressionRCModeOggEnc());
vorbisEncoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrLevelOggEnc() : settings->compressionBitrateOggEnc()); vorbisEncoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrQualityOggEnc() : settings->compressionAbrBitrateOggEnc());
if(settings->bitrateManagementEnabled()) if(settings->bitrateManagementEnabled())
{ {
vorbisEncoder->setBitrateLimits(settings->bitrateManagementMinRate(), settings->bitrateManagementMaxRate()); vorbisEncoder->setBitrateLimits(settings->bitrateManagementMinRate(), settings->bitrateManagementMaxRate());
@ -104,7 +106,7 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
{ {
QAACEncoder *aacEncoder = new QAACEncoder(); QAACEncoder *aacEncoder = new QAACEncoder();
aacEncoder->setRCMode(rcMode = settings->compressionRCModeAacEnc()); aacEncoder->setRCMode(rcMode = settings->compressionRCModeAacEnc());
aacEncoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrLevelAacEnc() : settings->compressionBitrateAacEnc()); aacEncoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrQualityAacEnc() : settings->compressionAbrBitrateAacEnc());
aacEncoder->setProfile(settings->aacEncProfile()); aacEncoder->setProfile(settings->aacEncProfile());
aacEncoder->setCustomParams(settings->customParametersAacEnc()); aacEncoder->setCustomParams(settings->customParametersAacEnc());
encoder = aacEncoder; encoder = aacEncoder;
@ -114,7 +116,7 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
{ {
FHGAACEncoder *aacEncoder = new FHGAACEncoder(); FHGAACEncoder *aacEncoder = new FHGAACEncoder();
aacEncoder->setRCMode(rcMode = settings->compressionRCModeAacEnc()); aacEncoder->setRCMode(rcMode = settings->compressionRCModeAacEnc());
aacEncoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrLevelAacEnc() : settings->compressionBitrateAacEnc()); aacEncoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrQualityAacEnc() : settings->compressionAbrBitrateAacEnc());
aacEncoder->setProfile(settings->aacEncProfile()); aacEncoder->setProfile(settings->aacEncProfile());
aacEncoder->setCustomParams(settings->customParametersAacEnc()); aacEncoder->setCustomParams(settings->customParametersAacEnc());
encoder = aacEncoder; encoder = aacEncoder;
@ -124,7 +126,7 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
{ {
AACEncoder *aacEncoder = new AACEncoder(); AACEncoder *aacEncoder = new AACEncoder();
aacEncoder->setRCMode(rcMode = settings->compressionRCModeAacEnc()); aacEncoder->setRCMode(rcMode = settings->compressionRCModeAacEnc());
aacEncoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrLevelAacEnc() : settings->compressionBitrateAacEnc()); aacEncoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrQualityAacEnc() : settings->compressionAbrBitrateAacEnc());
aacEncoder->setEnable2Pass(settings->neroAACEnable2Pass()); aacEncoder->setEnable2Pass(settings->neroAACEnable2Pass());
aacEncoder->setProfile(settings->aacEncProfile()); aacEncoder->setProfile(settings->aacEncProfile());
aacEncoder->setCustomParams(settings->customParametersAacEnc()); aacEncoder->setCustomParams(settings->customParametersAacEnc());
@ -142,7 +144,7 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
{ {
AC3Encoder *ac3Encoder = new AC3Encoder(); AC3Encoder *ac3Encoder = new AC3Encoder();
ac3Encoder->setRCMode(rcMode = settings->compressionRCModeAften()); ac3Encoder->setRCMode(rcMode = settings->compressionRCModeAften());
ac3Encoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrLevelAften() : settings->compressionBitrateAften()); ac3Encoder->setBitrate(IS_VBR(rcMode) ? settings->compressionVbrQualityAften() : settings->compressionAbrBitrateAften());
ac3Encoder->setCustomParams(settings->customParametersAften()); ac3Encoder->setCustomParams(settings->customParametersAften());
ac3Encoder->setAudioCodingMode(settings->aftenAudioCodingMode()); ac3Encoder->setAudioCodingMode(settings->aftenAudioCodingMode());
ac3Encoder->setDynamicRangeCompression(settings->aftenDynamicRangeCompression()); ac3Encoder->setDynamicRangeCompression(settings->aftenDynamicRangeCompression());
@ -155,7 +157,7 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
case SettingsModel::FLACEncoder: case SettingsModel::FLACEncoder:
{ {
FLACEncoder *flacEncoder = new FLACEncoder(); FLACEncoder *flacEncoder = new FLACEncoder();
flacEncoder->setBitrate(settings->compressionVbrLevelFLAC()); flacEncoder->setBitrate(settings->compressionVbrQualityFLAC());
flacEncoder->setRCMode(SettingsModel::VBRMode); flacEncoder->setRCMode(SettingsModel::VBRMode);
flacEncoder->setCustomParams(settings->customParametersFLAC()); flacEncoder->setCustomParams(settings->customParametersFLAC());
encoder = flacEncoder; encoder = flacEncoder;
@ -166,7 +168,7 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
{ {
OpusEncoder *opusEncoder = new OpusEncoder(); OpusEncoder *opusEncoder = new OpusEncoder();
opusEncoder->setRCMode(rcMode = settings->compressionRCModeOpusEnc()); opusEncoder->setRCMode(rcMode = settings->compressionRCModeOpusEnc());
opusEncoder->setBitrate(settings->compressionBitrateOpusEnc()); /*Opus always uses bitrate*/ opusEncoder->setBitrate(settings->compressionAbrBitrateOpusEnc()); /*Opus always uses bitrate*/
opusEncoder->setOptimizeFor(settings->opusOptimizeFor()); opusEncoder->setOptimizeFor(settings->opusOptimizeFor());
opusEncoder->setEncodeComplexity(settings->opusComplexity()); opusEncoder->setEncodeComplexity(settings->opusComplexity());
opusEncoder->setFrameSize(settings->opusFramesize()); opusEncoder->setFrameSize(settings->opusFramesize());
@ -179,7 +181,7 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
{ {
DCAEncoder *dcaEncoder = new DCAEncoder(); DCAEncoder *dcaEncoder = new DCAEncoder();
dcaEncoder->setRCMode(SettingsModel::CBRMode); dcaEncoder->setRCMode(SettingsModel::CBRMode);
dcaEncoder->setBitrate(IS_VBR(rcMode) ? 0 : settings->compressionBitrateDcaEnc()); dcaEncoder->setBitrate(IS_VBR(rcMode) ? 0 : settings->compressionAbrBitrateDcaEnc());
encoder = dcaEncoder; encoder = dcaEncoder;
} }
break; break;
@ -310,27 +312,17 @@ int EncoderRegistry::loadEncoderMode(SettingsModel *settings, const int encoderI
#define STORE_VALUE(ENCODER_ID, RC_MODE, VALUE) do \ #define STORE_VALUE(ENCODER_ID, RC_MODE, VALUE) do \
{ \ { \
if(IS_VBR(RC_MODE)) \ if(IS_VBR(RC_MODE)) settings->compressionVbrQuality##ENCODER_ID(VALUE); \
{ \ if(IS_ABR(RC_MODE)) settings->compressionAbrBitrate##ENCODER_ID(VALUE); \
settings->compressionVbrLevel##ENCODER_ID(VALUE); \ if(IS_CBR(RC_MODE)) settings->compressionCbrBitrate##ENCODER_ID(VALUE); \
} \
else \
{ \
settings->compressionBitrate##ENCODER_ID(VALUE); \
} \
} \ } \
while(0) while(0)
#define LOAD_VALUE(VALUE, ENCODER_ID, RC_MODE) do \ #define LOAD_VALUE(VALUE, ENCODER_ID, RC_MODE) do \
{ \ { \
if(IS_VBR(RC_MODE)) \ if(IS_VBR(RC_MODE)) (VALUE) = settings->compressionVbrQuality##ENCODER_ID(); \
{ \ if(IS_ABR(RC_MODE)) (VALUE) = settings->compressionAbrBitrate##ENCODER_ID(); \
(VALUE) = settings->compressionVbrLevel##ENCODER_ID(); \ if(IS_CBR(RC_MODE)) (VALUE) = settings->compressionCbrBitrate##ENCODER_ID(); \
} \
else \
{ \
(VALUE) = settings->compressionBitrate##ENCODER_ID(); \
} \
} \ } \
while(0) while(0)
@ -384,6 +376,55 @@ int EncoderRegistry::loadEncoderValue(const SettingsModel *settings, const int e
return value; return value;
} }
////////////////////////////////////////////////////////////
// Reset encoder settings
////////////////////////////////////////////////////////////
#define RESET_SETTING(OBJ,NAME) do \
{ \
(OBJ)->NAME((OBJ)->NAME##Default()); \
} \
while(0)
void EncoderRegistry::resetAllEncoders(SettingsModel *settings)
{
RESET_SETTING(settings, compressionAbrBitrateAacEnc);
RESET_SETTING(settings, compressionAbrBitrateAften);
RESET_SETTING(settings, compressionAbrBitrateDcaEnc);
RESET_SETTING(settings, compressionAbrBitrateFLAC);
RESET_SETTING(settings, compressionAbrBitrateLAME);
RESET_SETTING(settings, compressionAbrBitrateOggEnc);
RESET_SETTING(settings, compressionAbrBitrateOpusEnc);
RESET_SETTING(settings, compressionAbrBitrateWave);
RESET_SETTING(settings, compressionCbrBitrateAacEnc);
RESET_SETTING(settings, compressionCbrBitrateAften);
RESET_SETTING(settings, compressionCbrBitrateDcaEnc);
RESET_SETTING(settings, compressionCbrBitrateFLAC);
RESET_SETTING(settings, compressionCbrBitrateLAME);
RESET_SETTING(settings, compressionCbrBitrateOggEnc);
RESET_SETTING(settings, compressionCbrBitrateOpusEnc);
RESET_SETTING(settings, compressionCbrBitrateWave);
RESET_SETTING(settings, compressionRCModeAacEnc);
RESET_SETTING(settings, compressionRCModeAften);
RESET_SETTING(settings, compressionRCModeDcaEnc);
RESET_SETTING(settings, compressionRCModeFLAC);
RESET_SETTING(settings, compressionRCModeLAME);
RESET_SETTING(settings, compressionRCModeOggEnc);
RESET_SETTING(settings, compressionRCModeOpusEnc);
RESET_SETTING(settings, compressionRCModeWave);
RESET_SETTING(settings, compressionVbrQualityAacEnc);
RESET_SETTING(settings, compressionVbrQualityAften);
RESET_SETTING(settings, compressionVbrQualityDcaEnc);
RESET_SETTING(settings, compressionVbrQualityFLAC);
RESET_SETTING(settings, compressionVbrQualityLAME);
RESET_SETTING(settings, compressionVbrQualityOggEnc);
RESET_SETTING(settings, compressionVbrQualityOpusEnc);
RESET_SETTING(settings, compressionVbrQualityWave);
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// Static Functions // Static Functions
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////

View File

@ -41,5 +41,6 @@ public:
static void saveEncoderValue(SettingsModel *settings, const int encoderId, const int rcMode, const int value); static void saveEncoderValue(SettingsModel *settings, const int encoderId, const int rcMode, const int value);
static int loadEncoderValue(const SettingsModel *settings, const int encoderId, const int rcMode); static int loadEncoderValue(const SettingsModel *settings, const int encoderId, const int rcMode);
static void resetAllEncoders(SettingsModel *settings);
static int getAacEncoder(void); static int getAacEncoder(void);
}; };