Actually make the Nero AAC Profile/2-Pass options work. Also make the MP3 Channel Mode and Sampling Rate options work.
This commit is contained in:
parent
6c43678b7f
commit
7e44c69c03
@ -502,7 +502,7 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Auto (Recommended)</source>
|
<source>Auto Select (Recommended)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
@ -514,7 +514,7 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enforce HE-AAC v2 (AAC +SBR + PS)</source>
|
<source>Enforce HE-AAC v2 (AAC + SBR + PS)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -944,91 +944,91 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Channel Mode / Sampling Rate</source>
|
<source>Channel Mode / Sampling Rate</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Kanal Modus / Abtastrate</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Auto Select (Default)</source>
|
<source>Auto Select (Default)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Automatisch (Standard)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Joint Stereo</source>
|
<source>Joint Stereo</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Forced Joint Stereo</source>
|
<source>Forced Joint Stereo</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Joint Stereo Erzwingen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Simple</source>
|
<source>Simple</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Einfach</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Dual Mono</source>
|
<source>Dual Mono</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Doppel Mono</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Mono</source>
|
<source>Mono</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>MP3 Channel Mode:</source>
|
<source>MP3 Channel Mode:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>MP3 Kanal Modus:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>16.000</source>
|
<source>16.000</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>22.050</source>
|
<source>22.050</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>24.000</source>
|
<source>24.000</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>32.000</source>
|
<source>32.000</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>44.100</source>
|
<source>44.100</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>48.000</source>
|
<source>48.000</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Sampling Rate (Hz):</source>
|
<source>Sampling Rate (Hz):</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Abtastrate (Hz):</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Nero AAC Options</source>
|
<source>Nero AAC Options</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Nero AAC Optionen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable 2-Pass Processing (ABR Mode)</source>
|
<source>Enable 2-Pass Processing (ABR Mode)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>2 Durchläufe Verwenden (ABR Modus)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Select AAC Profile:</source>
|
<source>Select AAC Profile:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>AAC Profil Auswahl:</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Auto (Recommended)</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enforce LC-AAC</source>
|
<source>Enforce LC-AAC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Erzwinge LC-AAC</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enforce HE-AAC (AAC + SBR)</source>
|
<source>Enforce HE-AAC (AAC + SBR)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Erzwinge HE-AAC (AAC + SBR)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enforce HE-AAC v2 (AAC +SBR + PS)</source>
|
<source>Auto Select (Recommended)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Automatisch (Empfohlen)</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enforce HE-AAC v2 (AAC + SBR + PS)</source>
|
||||||
|
<translation>Erzwinge HE-AAC v2 (AAC + SBR + PS)</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1014,10 +1014,6 @@
|
|||||||
<source>Select AAC Profile:</source>
|
<source>Select AAC Profile:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Auto (Recommended)</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Enforce LC-AAC</source>
|
<source>Enforce LC-AAC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@ -1027,7 +1023,11 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enforce HE-AAC v2 (AAC +SBR + PS)</source>
|
<source>Auto Select (Recommended)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enforce HE-AAC v2 (AAC + SBR + PS)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -1018,10 +1018,6 @@ Votre dossier TEMP est situé ici:</translation>
|
|||||||
<source>Select AAC Profile:</source>
|
<source>Select AAC Profile:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Auto (Recommended)</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Enforce LC-AAC</source>
|
<source>Enforce LC-AAC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@ -1031,7 +1027,11 @@ Votre dossier TEMP est situé ici:</translation>
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enforce HE-AAC v2 (AAC +SBR + PS)</source>
|
<source>Auto Select (Recommended)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enforce HE-AAC v2 (AAC + SBR + PS)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -1014,10 +1014,6 @@
|
|||||||
<source>Select AAC Profile:</source>
|
<source>Select AAC Profile:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Auto (Recommended)</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Enforce LC-AAC</source>
|
<source>Enforce LC-AAC</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@ -1027,7 +1023,11 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enforce HE-AAC v2 (AAC +SBR + PS)</source>
|
<source>Auto Select (Recommended)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Enforce HE-AAC v2 (AAC + SBR + PS)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>667</width>
|
<width>667</width>
|
||||||
<height>407</height>
|
<height>446</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -1269,6 +1269,9 @@
|
|||||||
<layout class="QGridLayout" name="gridLayout_23">
|
<layout class="QGridLayout" name="gridLayout_23">
|
||||||
<item row="1" column="2">
|
<item row="1" column="2">
|
||||||
<widget class="QComboBox" name="comboBoxMP3ChannelMode">
|
<widget class="QComboBox" name="comboBoxMP3ChannelMode">
|
||||||
|
<property name="sizeAdjustPolicy">
|
||||||
|
<enum>QComboBox::AdjustToContents</enum>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Auto Select (Default)</string>
|
<string>Auto Select (Default)</string>
|
||||||
@ -1406,6 +1409,9 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="1" column="7">
|
<item row="1" column="7">
|
||||||
<widget class="QComboBox" name="comboBoxSamplingRate">
|
<widget class="QComboBox" name="comboBoxSamplingRate">
|
||||||
|
<property name="sizeAdjustPolicy">
|
||||||
|
<enum>QComboBox::AdjustToContents</enum>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Auto Select (Default)</string>
|
<string>Auto Select (Default)</string>
|
||||||
@ -1520,9 +1526,12 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="1" column="4">
|
<item row="1" column="4">
|
||||||
<widget class="QComboBox" name="comboBoxNeroAACProfile">
|
<widget class="QComboBox" name="comboBoxNeroAACProfile">
|
||||||
|
<property name="sizeAdjustPolicy">
|
||||||
|
<enum>QComboBox::AdjustToContents</enum>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Auto (Recommended)</string>
|
<string>Auto Select (Recommended)</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -1537,7 +1546,7 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Enforce HE-AAC v2 (AAC +SBR + PS)</string>
|
<string>Enforce HE-AAC v2 (AAC + SBR + PS)</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
@ -2076,6 +2085,8 @@
|
|||||||
<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>
|
</resources>
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
|
Binary file not shown.
@ -25,7 +25,7 @@
|
|||||||
#define VER_LAMEXP_MAJOR 4
|
#define VER_LAMEXP_MAJOR 4
|
||||||
#define VER_LAMEXP_MINOR_HI 0
|
#define VER_LAMEXP_MINOR_HI 0
|
||||||
#define VER_LAMEXP_MINOR_LO 0
|
#define VER_LAMEXP_MINOR_LO 0
|
||||||
#define VER_LAMEXP_BUILD 249
|
#define VER_LAMEXP_BUILD 251
|
||||||
#define VER_LAMEXP_SUFFIX Beta-1
|
#define VER_LAMEXP_SUFFIX Beta-1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -440,6 +440,8 @@ void ProcessingDialog::startNextJob(void)
|
|||||||
{
|
{
|
||||||
mp3Encoder->setBitrateLimits(m_settings->bitrateManagementMinRate(), m_settings->bitrateManagementMaxRate());
|
mp3Encoder->setBitrateLimits(m_settings->bitrateManagementMinRate(), m_settings->bitrateManagementMaxRate());
|
||||||
}
|
}
|
||||||
|
mp3Encoder->setSamplingRate(SettingsModel::samplingRates[m_settings->samplingRate()]);
|
||||||
|
mp3Encoder->setChannelMode(m_settings->lameChannelMode());
|
||||||
encoder = mp3Encoder;
|
encoder = mp3Encoder;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -460,6 +462,8 @@ void ProcessingDialog::startNextJob(void)
|
|||||||
AACEncoder *aacEncoder = new AACEncoder();
|
AACEncoder *aacEncoder = new AACEncoder();
|
||||||
aacEncoder->setBitrate(m_settings->compressionBitrate());
|
aacEncoder->setBitrate(m_settings->compressionBitrate());
|
||||||
aacEncoder->setRCMode(m_settings->compressionRCMode());
|
aacEncoder->setRCMode(m_settings->compressionRCMode());
|
||||||
|
aacEncoder->setEnable2Pass(m_settings->neroAACEnable2Pass());
|
||||||
|
aacEncoder->setProfile(m_settings->neroAACProfile());
|
||||||
encoder = aacEncoder;
|
encoder = aacEncoder;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -40,6 +40,9 @@ AACEncoder::AACEncoder(void)
|
|||||||
{
|
{
|
||||||
throw "Error initializing AAC encoder. Tool 'neroAacEnc.exe' is not registred!";
|
throw "Error initializing AAC encoder. Tool 'neroAacEnc.exe' is not registred!";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_configProfile = 0;
|
||||||
|
m_configEnable2Pass = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
AACEncoder::~AACEncoder(void)
|
AACEncoder::~AACEncoder(void)
|
||||||
@ -58,7 +61,7 @@ bool AACEncoder::encode(const QString &sourceFile, const AudioFileModel &metaInf
|
|||||||
args << "-q" << QString().sprintf("%.2f", min(1.0, max(0.0, static_cast<double>(m_configBitrate * 5) / 100.0)));
|
args << "-q" << QString().sprintf("%.2f", min(1.0, max(0.0, static_cast<double>(m_configBitrate * 5) / 100.0)));
|
||||||
break;
|
break;
|
||||||
case SettingsModel::ABRMode:
|
case SettingsModel::ABRMode:
|
||||||
args << "-br" << QString::number(max(32, min(500, (m_configBitrate * 8))) * 1000) << "-2pass";
|
args << "-br" << QString::number(max(32, min(500, (m_configBitrate * 8))) * 1000);
|
||||||
break;
|
break;
|
||||||
case SettingsModel::CBRMode:
|
case SettingsModel::CBRMode:
|
||||||
args << "-cbr" << QString::number(max(32, min(500, (m_configBitrate * 8))) * 1000) << "-2pass";
|
args << "-cbr" << QString::number(max(32, min(500, (m_configBitrate * 8))) * 1000) << "-2pass";
|
||||||
@ -68,6 +71,24 @@ bool AACEncoder::encode(const QString &sourceFile, const AudioFileModel &metaInf
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(m_configEnable2Pass && (m_configRCMode == SettingsModel::ABRMode))
|
||||||
|
{
|
||||||
|
args << "-2pass";
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(m_configProfile)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
args << "-lc"; //Forces use of LC AAC profile
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
args << "-he"; //Forces use of HE AAC profile
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
args << "-hev2"; //Forces use of HEv2 AAC profile
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
args << "-if" << QDir::toNativeSeparators(sourceFile);
|
args << "-if" << QDir::toNativeSeparators(sourceFile);
|
||||||
args << "-of" << QDir::toNativeSeparators(outputFile);
|
args << "-of" << QDir::toNativeSeparators(outputFile);
|
||||||
|
|
||||||
@ -235,3 +256,14 @@ bool AACEncoder::isFormatSupported(const QString &containerType, const QString &
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void AACEncoder::setProfile(int profile)
|
||||||
|
{
|
||||||
|
m_configProfile = profile;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AACEncoder::setEnable2Pass(bool enabled)
|
||||||
|
{
|
||||||
|
m_configEnable2Pass = enabled;
|
||||||
|
}
|
||||||
|
@ -37,7 +37,13 @@ public:
|
|||||||
virtual bool isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion);
|
virtual bool isFormatSupported(const QString &containerType, const QString &containerProfile, const QString &formatType, const QString &formatProfile, const QString &formatVersion);
|
||||||
virtual QString extension(void);
|
virtual QString extension(void);
|
||||||
|
|
||||||
|
//Advanced options
|
||||||
|
virtual void setProfile(int profile);
|
||||||
|
virtual void setEnable2Pass(bool enabled);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const QString m_binary_enc;
|
const QString m_binary_enc;
|
||||||
const QString m_binary_tag;
|
const QString m_binary_tag;
|
||||||
|
int m_configProfile;
|
||||||
|
bool m_configEnable2Pass;
|
||||||
};
|
};
|
||||||
|
@ -44,6 +44,8 @@ MP3Encoder::MP3Encoder(void)
|
|||||||
m_algorithmQuality = 3;
|
m_algorithmQuality = 3;
|
||||||
m_configBitrateMaximum = 0;
|
m_configBitrateMaximum = 0;
|
||||||
m_configBitrateMinimum = 0;
|
m_configBitrateMinimum = 0;
|
||||||
|
m_configSamplingRate = 0;
|
||||||
|
m_configChannelMode = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
MP3Encoder::~MP3Encoder(void)
|
MP3Encoder::~MP3Encoder(void)
|
||||||
@ -84,6 +86,30 @@ bool MP3Encoder::encode(const QString &sourceFile, const AudioFileModel &metaInf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(m_configSamplingRate > 0)
|
||||||
|
{
|
||||||
|
args << "--resample" << QString::number(m_configSamplingRate);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(m_configChannelMode)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
args << "-m" << "j";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
args << "-m" << "f";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
args << "-m" << "s";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
args << "-m" << "d";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
args << "-m" << "m";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if(!metaInfo.fileName().isEmpty()) args << (IS_UNICODE(metaInfo.fileName()) ? "--uTitle" : "--lTitle") << metaInfo.fileName();
|
if(!metaInfo.fileName().isEmpty()) args << (IS_UNICODE(metaInfo.fileName()) ? "--uTitle" : "--lTitle") << metaInfo.fileName();
|
||||||
if(!metaInfo.fileArtist().isEmpty()) args << (IS_UNICODE(metaInfo.fileArtist()) ? "--uArtist" : "--lArtist") << metaInfo.fileArtist();
|
if(!metaInfo.fileArtist().isEmpty()) args << (IS_UNICODE(metaInfo.fileArtist()) ? "--uArtist" : "--lArtist") << metaInfo.fileArtist();
|
||||||
if(!metaInfo.fileAlbum().isEmpty()) args << (IS_UNICODE(metaInfo.fileAlbum()) ? "--uAlbum" : "--lAlbum") << metaInfo.fileAlbum();
|
if(!metaInfo.fileAlbum().isEmpty()) args << (IS_UNICODE(metaInfo.fileAlbum()) ? "--uAlbum" : "--lAlbum") << metaInfo.fileAlbum();
|
||||||
@ -206,6 +232,16 @@ void MP3Encoder::setBitrateLimits(int minimumBitrate, int maximumBitrate)
|
|||||||
m_configBitrateMaximum = maximumBitrate;
|
m_configBitrateMaximum = maximumBitrate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MP3Encoder::setSamplingRate(int value)
|
||||||
|
{
|
||||||
|
m_configSamplingRate = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MP3Encoder::setChannelMode(int value)
|
||||||
|
{
|
||||||
|
m_configChannelMode = value;
|
||||||
|
}
|
||||||
|
|
||||||
int MP3Encoder::clipBitrate(int bitrate)
|
int MP3Encoder::clipBitrate(int bitrate)
|
||||||
{
|
{
|
||||||
int targetBitrate = min(max(bitrate, 32), 320);
|
int targetBitrate = min(max(bitrate, 32), 320);
|
||||||
@ -230,4 +266,3 @@ int MP3Encoder::clipBitrate(int bitrate)
|
|||||||
|
|
||||||
return targetBitrate;
|
return targetBitrate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,13 +41,16 @@ public:
|
|||||||
//Advanced options
|
//Advanced options
|
||||||
virtual void setAlgoQuality(int value);
|
virtual void setAlgoQuality(int value);
|
||||||
virtual void setBitrateLimits(int minimumBitrate, int maximumBitrate);
|
virtual void setBitrateLimits(int minimumBitrate, int maximumBitrate);
|
||||||
|
virtual void setSamplingRate(int value);
|
||||||
|
virtual void setChannelMode(int value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const QString m_binary;
|
const QString m_binary;
|
||||||
int m_algorithmQuality;
|
int m_algorithmQuality;
|
||||||
int m_configBitrateMaximum;
|
int m_configBitrateMaximum;
|
||||||
int m_configBitrateMinimum;
|
int m_configBitrateMinimum;
|
||||||
|
int m_configSamplingRate;
|
||||||
|
int m_configChannelMode;
|
||||||
|
|
||||||
int clipBitrate(int bitrate);
|
int clipBitrate(int bitrate);
|
||||||
};
|
};
|
||||||
|
@ -62,19 +62,22 @@ static const char *g_settingsId_neroAACProfile = "AdvancedOptions/NeroAAC/ForceP
|
|||||||
//Macros
|
//Macros
|
||||||
#define MAKE_OPTION1(OPT,DEF) \
|
#define MAKE_OPTION1(OPT,DEF) \
|
||||||
int SettingsModel::OPT(void) { return m_settings->value(g_settingsId_##OPT, DEF).toInt(); } \
|
int SettingsModel::OPT(void) { return m_settings->value(g_settingsId_##OPT, DEF).toInt(); } \
|
||||||
void SettingsModel::OPT(int value) { m_settings->setValue(g_settingsId_##OPT, value); }
|
void SettingsModel::OPT(int value) { m_settings->setValue(g_settingsId_##OPT, value); } \
|
||||||
|
int SettingsModel::OPT##Default(void) { return DEF; }
|
||||||
|
|
||||||
#define MAKE_OPTION2(OPT,DEF) \
|
#define MAKE_OPTION2(OPT,DEF) \
|
||||||
QString SettingsModel::OPT(void) { return m_settings->value(g_settingsId_##OPT, DEF).toString().trimmed(); } \
|
QString SettingsModel::OPT(void) { return m_settings->value(g_settingsId_##OPT, DEF).toString().trimmed(); } \
|
||||||
void SettingsModel::OPT(const QString &value) { m_settings->setValue(g_settingsId_##OPT, value); }
|
void SettingsModel::OPT(const QString &value) { m_settings->setValue(g_settingsId_##OPT, value); } \
|
||||||
|
QString SettingsModel::OPT##Default(void) { return DEF; }
|
||||||
|
|
||||||
#define MAKE_OPTION3(OPT,DEF) \
|
#define MAKE_OPTION3(OPT,DEF) \
|
||||||
bool SettingsModel::OPT(void) { return m_settings->value(g_settingsId_##OPT, DEF).toBool(); } \
|
bool SettingsModel::OPT(void) { return m_settings->value(g_settingsId_##OPT, DEF).toBool(); } \
|
||||||
void SettingsModel::OPT(bool value) { m_settings->setValue(g_settingsId_##OPT, value); }
|
void SettingsModel::OPT(bool value) { m_settings->setValue(g_settingsId_##OPT, value); } \
|
||||||
|
bool SettingsModel::OPT##Default(void) { return DEF; }
|
||||||
|
|
||||||
//LUT
|
//LUT
|
||||||
const int SettingsModel::mp3Bitrates[15] = {32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1};
|
const int SettingsModel::mp3Bitrates[15] = {32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1};
|
||||||
const int SettingsModel::samplingRates[7] = {16000, 22050, 24000, 32000, 44100, 48000, -1};
|
const int SettingsModel::samplingRates[8] = {0, 16000, 22050, 24000, 32000, 44100, 48000, -1};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
// Constructor
|
// Constructor
|
||||||
|
@ -26,15 +26,18 @@ class QString;
|
|||||||
|
|
||||||
#define MAKE_OPTION_DEC1(OPT) \
|
#define MAKE_OPTION_DEC1(OPT) \
|
||||||
int OPT(void); \
|
int OPT(void); \
|
||||||
void OPT(int value);
|
void OPT(int value); \
|
||||||
|
int OPT##Default(void);
|
||||||
|
|
||||||
#define MAKE_OPTION_DEC2(OPT) \
|
#define MAKE_OPTION_DEC2(OPT) \
|
||||||
QString OPT(void); \
|
QString OPT(void); \
|
||||||
void OPT(const QString &value);
|
void OPT(const QString &value); \
|
||||||
|
QString OPT##Default(void);
|
||||||
|
|
||||||
#define MAKE_OPTION_DEC3(OPT) \
|
#define MAKE_OPTION_DEC3(OPT) \
|
||||||
bool OPT(void); \
|
bool OPT(void); \
|
||||||
void OPT(bool value);
|
void OPT(bool value); \
|
||||||
|
bool OPT##Default(void);
|
||||||
|
|
||||||
class SettingsModel
|
class SettingsModel
|
||||||
{
|
{
|
||||||
@ -60,7 +63,7 @@ public:
|
|||||||
|
|
||||||
//Consts
|
//Consts
|
||||||
static const int mp3Bitrates[15];
|
static const int mp3Bitrates[15];
|
||||||
static const int samplingRates[7];
|
static const int samplingRates[8];
|
||||||
|
|
||||||
//Getters & setters
|
//Getters & setters
|
||||||
MAKE_OPTION_DEC1(licenseAccepted);
|
MAKE_OPTION_DEC1(licenseAccepted);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user