Added "Resample" filter, based on SoX. Used for encoders that don't support "native" resampling. Also added a "Tone Adjustment" filter, based on SoX too.

This commit is contained in:
LoRd_MuldeR 2011-01-26 20:16:46 +01:00
parent 4ddebb58c9
commit d13050c3db
22 changed files with 844 additions and 115 deletions

View File

@ -414,6 +414,14 @@
RelativePath=".\src\Filter_Normalize.cpp" RelativePath=".\src\Filter_Normalize.cpp"
> >
</File> </File>
<File
RelativePath=".\src\Filter_Resample.cpp"
>
</File>
<File
RelativePath=".\src\Filter_ToneAdjust.cpp"
>
</File>
<File <File
RelativePath=".\src\Genres.cpp" RelativePath=".\src\Genres.cpp"
> >
@ -1130,6 +1138,14 @@
RelativePath=".\src\Filter_Normalize.h" RelativePath=".\src\Filter_Normalize.h"
> >
</File> </File>
<File
RelativePath=".\src\Filter_Resample.h"
>
</File>
<File
RelativePath=".\src\Filter_ToneAdjust.h"
>
</File>
<File <File
RelativePath=".\src\Genres.h" RelativePath=".\src\Genres.h"
> >

View File

@ -107,6 +107,18 @@
<source>Open and patent-free lossless audio compression technology.</source> <source>Open and patent-free lossless audio compression technology.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>mpg123 - Fast Console MPEG Audio Player/Decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FAAD - OpenSource MPEG-4 and MPEG-2 AAC Decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Released under the terms of the GNU General Public License.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>AC3Filter Tools - AC3/DTS Decoder</source> <source>AC3Filter Tools - AC3/DTS Decoder</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -151,6 +163,10 @@
<source>By Mark James, released under the Creative Commons &apos;by&apos; License.</source> <source>By Mark James, released under the Creative Commons &apos;by&apos; License.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of thrird-party software used in LameXP belongs to the individual authors.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>About Third-party Software</source> <source>About Third-party Software</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -461,6 +477,10 @@
<source>MP3 Channel Mode:</source> <source>MP3 Channel Mode:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Sampling Rate (Hz):</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>16.000</source> <source>16.000</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -485,10 +505,6 @@
<source>48.000</source> <source>48.000</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Sampling Rate (Hz):</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Nero AAC Options</source> <source>Nero AAC Options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -529,6 +545,18 @@
<source>Peak Volume (dB):</source> <source>Peak Volume (dB):</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> Tone Adjustment </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Treble (dB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Bass (dB):</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Reset Advanced Options </source> <source>Reset Advanced Options </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>

View File

@ -159,6 +159,22 @@
<source>The True Audio - Lossless Audio Codec</source> <source>The True Audio - Lossless Audio Codec</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>mpg123 - Fast Console MPEG Audio Player/Decoder</source>
<translation></translation>
</message>
<message>
<source>FAAD - OpenSource MPEG-4 and MPEG-2 AAC Decoder</source>
<translation></translation>
</message>
<message>
<source>Released under the terms of the GNU General Public License.</source>
<translation>Veröffentlicht unter den Bestimmungen der GNU General Public License.</translation>
</message>
<message>
<source>LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of thrird-party software used in LameXP belongs to the individual authors.</source>
<translation>Das Urheberrecht an LameXP liegt beit LoRd_MuldeR. Das Urheberrecht an der eingesetzten Drittsoftware liegt bei den jeweiligen Authoren.</translation>
</message>
</context> </context>
<context> <context>
<name>AudioFileModel</name> <name>AudioFileModel</name>
@ -1050,6 +1066,18 @@
<source>Encode!</source> <source>Encode!</source>
<translation>Kodieren!</translation> <translation>Kodieren!</translation>
</message> </message>
<message>
<source> Tone Adjustment </source>
<translation> Klangregelung </translation>
</message>
<message>
<source>Adjust Treble (dB):</source>
<translation>Höhen-Regler (dB):</translation>
</message>
<message>
<source>Adjust Bass (dB):</source>
<translation>Bass-Regler (dB):</translation>
</message>
</context> </context>
<context> <context>
<name>MetaInfo</name> <name>MetaInfo</name>

View File

@ -160,6 +160,22 @@
<source>The True Audio - Lossless Audio Codec</source> <source>The True Audio - Lossless Audio Codec</source>
<translation>True audio - Códec de audio sin pérdida</translation> <translation>True audio - Códec de audio sin pérdida</translation>
</message> </message>
<message>
<source>mpg123 - Fast Console MPEG Audio Player/Decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FAAD - OpenSource MPEG-4 and MPEG-2 AAC Decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Released under the terms of the GNU General Public License.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of thrird-party software used in LameXP belongs to the individual authors.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>AudioFileModel</name> <name>AudioFileModel</name>
@ -1050,6 +1066,18 @@
<source>Encode!</source> <source>Encode!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> Tone Adjustment </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Treble (dB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Bass (dB):</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MetaInfo</name> <name>MetaInfo</name>

View File

@ -162,6 +162,22 @@
<source>The True Audio - Lossless Audio Codec</source> <source>The True Audio - Lossless Audio Codec</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>mpg123 - Fast Console MPEG Audio Player/Decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FAAD - OpenSource MPEG-4 and MPEG-2 AAC Decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Released under the terms of the GNU General Public License.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of thrird-party software used in LameXP belongs to the individual authors.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>AudioFileModel</name> <name>AudioFileModel</name>
@ -1054,6 +1070,18 @@ Votre dossier TEMP est situé ici:</translation>
<source>Encode!</source> <source>Encode!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> Tone Adjustment </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Treble (dB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Bass (dB):</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MetaInfo</name> <name>MetaInfo</name>

View File

@ -159,6 +159,22 @@
<source>The True Audio - Lossless Audio Codec</source> <source>The True Audio - Lossless Audio Codec</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>mpg123 - Fast Console MPEG Audio Player/Decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FAAD - OpenSource MPEG-4 and MPEG-2 AAC Decoder</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Released under the terms of the GNU General Public License.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of thrird-party software used in LameXP belongs to the individual authors.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>AudioFileModel</name> <name>AudioFileModel</name>
@ -1050,6 +1066,18 @@
<source>Encode!</source> <source>Encode!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source> Tone Adjustment </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Treble (dB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Bass (dB):</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MetaInfo</name> <name>MetaInfo</name>

View File

@ -36,6 +36,9 @@
..\..\src\Encoder_Wave.cpp ..\..\src\Encoder_Wave.cpp
..\..\src\Filter_Abstract.cpp ..\..\src\Filter_Abstract.cpp
..\..\src\Filter_Downmix.cpp ..\..\src\Filter_Downmix.cpp
..\..\src\Filter_Normalize.cpp
..\..\src\Filter_Resample.cpp
..\..\src\Filter_ToneAdjust.cpp
..\..\src\Genres.cpp ..\..\src\Genres.cpp
..\..\src\Global.cpp ..\..\src\Global.cpp
..\..\src\LockedFile.cpp ..\..\src\LockedFile.cpp
@ -85,6 +88,9 @@
..\..\src\Encoder_Wave.h ..\..\src\Encoder_Wave.h
..\..\src\Filter_Abstract.h ..\..\src\Filter_Abstract.h
..\..\src\Filter_Downmix.h ..\..\src\Filter_Downmix.h
..\..\src\Filter_Normalize.h
..\..\src\Filter_Resample.h
..\..\src\Filter_ToneAdjust.h
..\..\src\Genres.h ..\..\src\Genres.h
..\..\src\Global.h ..\..\src\Global.h
..\..\src\LockedFile.h ..\..\src\LockedFile.h

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>667</width> <width>667</width>
<height>446</height> <height>449</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -986,7 +986,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>604</width> <width>604</width>
<height>520</height> <height>609</height>
</rect> </rect>
</property> </property>
<layout class="QGridLayout" name="gridLayout_22"> <layout class="QGridLayout" name="gridLayout_22">
@ -1271,9 +1271,9 @@
<string>Channel Mode / Sampling Rate</string> <string>Channel Mode / Sampling Rate</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_24"> <layout class="QGridLayout" name="gridLayout_24">
<item row="0" column="0"> <item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_23"> <layout class="QGridLayout" name="gridLayout_27">
<item row="1" column="2"> <item row="1" column="5">
<widget class="QComboBox" name="comboBoxMP3ChannelMode"> <widget class="QComboBox" name="comboBoxMP3ChannelMode">
<property name="sizeAdjustPolicy"> <property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum> <enum>QComboBox::AdjustToContents</enum>
@ -1310,39 +1310,7 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="4">
<spacer name="horizontalSpacer_18">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="9">
<spacer name="horizontalSpacer_19">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_4"> <widget class="QLabel" name="label_4">
<property name="text"> <property name="text">
<string>MP3 Channel Mode:</string> <string>MP3 Channel Mode:</string>
@ -1352,68 +1320,17 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1" colspan="4"> <item row="1" column="1">
<spacer name="verticalSpacer_9"> <widget class="QLabel" name="label_5">
<property name="orientation"> <property name="text">
<enum>Qt::Vertical</enum> <string>Sampling Rate (Hz):</string>
</property> </property>
<property name="sizeType"> <property name="alignment">
<enum>QSizePolicy::Fixed</enum> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
<property name="sizeHint" stdset="0"> </widget>
<size>
<width>20</width>
<height>8</height>
</size>
</property>
</spacer>
</item> </item>
<item row="2" column="1" colspan="4"> <item row="1" column="2">
<spacer name="verticalSpacer_10">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>8</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="8">
<spacer name="horizontalSpacer_20">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="5">
<spacer name="horizontalSpacer_21">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="7">
<widget class="QComboBox" name="comboBoxSamplingRate"> <widget class="QComboBox" name="comboBoxSamplingRate">
<property name="sizeAdjustPolicy"> <property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum> <enum>QComboBox::AdjustToContents</enum>
@ -1455,15 +1372,98 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="1" column="0">
<spacer name="horizontalSpacer_18">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="7">
<spacer name="horizontalSpacer_19">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="3">
<spacer name="horizontalSpacer_21">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="6"> <item row="1" column="6">
<widget class="QLabel" name="label_5"> <spacer name="horizontalSpacer_20">
<property name="text"> <property name="orientation">
<string>Sampling Rate (Hz):</string> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="alignment"> <property name="sizeType">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <enum>QSizePolicy::Expanding</enum>
</property> </property>
</widget> <property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1" colspan="6">
<spacer name="verticalSpacer_10">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>8</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1" colspan="6">
<spacer name="verticalSpacer_9">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>8</height>
</size>
</property>
</spacer>
</item> </item>
</layout> </layout>
</item> </item>
@ -1768,6 +1768,184 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="5" column="0">
<widget class="QGroupBox" name="groupBox_10">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="title">
<string> Tone Adjustment </string>
</property>
<layout class="QGridLayout" name="gridLayout_28">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_23">
<item row="1" column="2">
<widget class="QDoubleSpinBox" name="spinBoxToneAdjustTreble">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="minimum">
<double>-20.000000000000000</double>
</property>
<property name="maximum">
<double>20.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer_30">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="8">
<spacer name="horizontalSpacer_31">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="6">
<spacer name="horizontalSpacer_32">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="5">
<widget class="QDoubleSpinBox" name="spinBoxToneAdjustBass">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="minimum">
<double>-20.000000000000000</double>
</property>
<property name="maximum">
<double>20.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="3">
<spacer name="horizontalSpacer_29">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Adjust Treble (dB):</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Adjust Bass (dB):</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="7">
<widget class="QPushButton" name="buttonToneAdjustReset">
<property name="maximumSize">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../res/Icons.qrc">
<normaloff>:/icons/cross.png</normaloff>:/icons/cross.png</iconset>
</property>
</widget>
</item>
<item row="0" column="1" colspan="7">
<spacer name="verticalSpacer_13">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>8</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1" colspan="7">
<spacer name="verticalSpacer_14">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>8</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</item> </item>
<item row="6" column="0"> <item row="6" column="0">
@ -2300,6 +2478,10 @@
<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"/>
<include location="../res/Icons.qrc"/>
<include location="../res/Icons.qrc"/>
</resources> </resources>
<connections> <connections>
<connection> <connection>

View File

@ -17,14 +17,12 @@
<file>tools/oggenc2_i386.exe</file> <file>tools/oggenc2_i386.exe</file>
<file>tools/oggenc2_sse2.exe</file> <file>tools/oggenc2_sse2.exe</file>
<file>tools/oggenc2_x64.exe</file> <file>tools/oggenc2_x64.exe</file>
<file>tools/selfdelete.exe</file>
<file>tools/shorten.exe</file> <file>tools/shorten.exe</file>
<file>tools/sox.exe</file> <file>tools/sox.exe</file>
<file>tools/speexdec.exe</file> <file>tools/speexdec.exe</file>
<file>tools/takc.exe</file> <file>tools/takc.exe</file>
<file>tools/ttaenc.exe</file> <file>tools/ttaenc.exe</file>
<file>tools/valdec.exe</file> <file>tools/valdec.exe</file>
<file>tools/volumax.exe</file>
<file>tools/wget.exe</file> <file>tools/wget.exe</file>
<file>tools/wupdate.exe</file> <file>tools/wupdate.exe</file>
<file>tools/wvunpack.exe</file> <file>tools/wvunpack.exe</file>

Binary file not shown.

View File

@ -25,8 +25,8 @@
#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 264 #define VER_LAMEXP_BUILD 267
#define VER_LAMEXP_SUFFIX Beta-1 #define VER_LAMEXP_SUFFIX Beta-2
/* /*
* Tools versions * Tools versions

View File

@ -241,7 +241,7 @@ void AboutDialog::showMoreAbout(void)
QString moreAboutText; QString moreAboutText;
moreAboutText += QString("<h3>%1</h3>").arg(tr("The following third-party software is used in LameXP:")); moreAboutText += QString("<h3>%1</h3>").arg(tr("The following third-party software is used in LameXP:"));
moreAboutText += "<div style=\"margin-left:-25px;font-size:8pt\"><ul>"; moreAboutText += "<div style=\"margin-left:-25px;font-size:8pt\"><table><tr><td><ul>";
moreAboutText += makeToolText moreAboutText += makeToolText
( (
@ -280,12 +280,23 @@ void AboutDialog::showMoreAbout(void)
"http://www.mpg123.de/" "http://www.mpg123.de/"
); );
moreAboutText += makeToolText moreAboutText += makeToolText
(
tr("FAAD - OpenSource MPEG-4 and MPEG-2 AAC Decoder"),
"faad.exe", "v?.?",
tr("Released under the terms of the GNU General Public License."),
"http://www.audiocoding.com/"
);
moreAboutText += makeToolText
( (
tr("AC3Filter Tools - AC3/DTS Decoder"), tr("AC3Filter Tools - AC3/DTS Decoder"),
"valdec.exe", "v?.??", "valdec.exe", "v?.??",
tr("Released under the terms of the GNU Lesser General Public License."), tr("Released under the terms of the GNU Lesser General Public License."),
"http://www.ac3filter.net/projects/tools" "http://www.ac3filter.net/projects/tools"
); );
moreAboutText += QString
(
"</ul></td><td><ul>"
);
moreAboutText += makeToolText moreAboutText += makeToolText
( (
tr("WavPack - Hybrid Lossless Compression"), tr("WavPack - Hybrid Lossless Compression"),
@ -335,6 +346,10 @@ void AboutDialog::showMoreAbout(void)
tr("By Mark James, released under the Creative Commons 'by' License."), tr("By Mark James, released under the Creative Commons 'by' License."),
"http://www.famfamfam.com/lab/icons/silk/" "http://www.famfamfam.com/lab/icons/silk/"
); );
moreAboutText += QString("</ul></td><td>&nbsp;</td></tr></table></div><i>%1</i><br>").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.")
);
QMessageBox *moreAboutBox = new QMessageBox(this); QMessageBox *moreAboutBox = new QMessageBox(this);
moreAboutBox->setText(moreAboutText); moreAboutBox->setText(moreAboutText);

View File

@ -218,6 +218,8 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
spinBoxBitrateManagementMin->setValue(m_settings->bitrateManagementMinRate()); spinBoxBitrateManagementMin->setValue(m_settings->bitrateManagementMinRate());
spinBoxBitrateManagementMax->setValue(m_settings->bitrateManagementMaxRate()); spinBoxBitrateManagementMax->setValue(m_settings->bitrateManagementMaxRate());
spinBoxNormalizationFilter->setValue(static_cast<double>(m_settings->normalizationFilterMaxVolume()) / 100.0); spinBoxNormalizationFilter->setValue(static_cast<double>(m_settings->normalizationFilterMaxVolume()) / 100.0);
spinBoxToneAdjustBass->setValue(static_cast<double>(m_settings->toneAdjustBass()) / 100.0);
spinBoxToneAdjustTreble->setValue(static_cast<double>(m_settings->toneAdjustTreble()) / 100.0);
comboBoxMP3ChannelMode->setCurrentIndex(m_settings->lameChannelMode()); comboBoxMP3ChannelMode->setCurrentIndex(m_settings->lameChannelMode());
comboBoxSamplingRate->setCurrentIndex(m_settings->samplingRate()); comboBoxSamplingRate->setCurrentIndex(m_settings->samplingRate());
comboBoxNeroAACProfile->setCurrentIndex(m_settings->neroAACProfile()); comboBoxNeroAACProfile->setCurrentIndex(m_settings->neroAACProfile());
@ -234,8 +236,13 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
connect(comboBoxNeroAACProfile, SIGNAL(currentIndexChanged(int)), this, SLOT(neroAACProfileChanged(int))); connect(comboBoxNeroAACProfile, SIGNAL(currentIndexChanged(int)), this, SLOT(neroAACProfileChanged(int)));
connect(checkBoxNormalizationFilter, SIGNAL(clicked(bool)), this, SLOT(normalizationEnabledChanged(bool))); connect(checkBoxNormalizationFilter, SIGNAL(clicked(bool)), this, SLOT(normalizationEnabledChanged(bool)));
connect(spinBoxNormalizationFilter, SIGNAL(valueChanged(double)), this, SLOT(normalizationMaxVolumeChanged(double))); 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)));
connect(buttonToneAdjustReset, SIGNAL(clicked()), this, SLOT(toneAdjustTrebleReset()));
connect(buttonResetAdvancedOptions, SIGNAL(clicked()), this, SLOT(resetAdvancedOptionsButtonClicked())); connect(buttonResetAdvancedOptions, SIGNAL(clicked()), this, SLOT(resetAdvancedOptionsButtonClicked()));
updateLameAlgoQuality(sliderLameAlgoQuality->value()); updateLameAlgoQuality(sliderLameAlgoQuality->value());
toneAdjustTrebleChanged(spinBoxToneAdjustTreble->value());
toneAdjustBassChanged(spinBoxToneAdjustBass->value());
//Activate file menu actions //Activate file menu actions
connect(actionOpenFolder, SIGNAL(triggered()), this, SLOT(openFolderActionActivated())); connect(actionOpenFolder, SIGNAL(triggered()), this, SLOT(openFolderActionActivated()));
@ -1712,6 +1719,35 @@ void MainWindow::normalizationMaxVolumeChanged(double value)
m_settings->normalizationFilterMaxVolume(static_cast<int>(value * 100.0)); m_settings->normalizationFilterMaxVolume(static_cast<int>(value * 100.0));
} }
/*
* Tone adjustment has changed (Bass)
*/
void MainWindow::toneAdjustBassChanged(double value)
{
m_settings->toneAdjustBass(static_cast<int>(value * 100.0));
spinBoxToneAdjustBass->setPrefix((value > 0) ? "+" : QString());
}
/*
* Tone adjustment has changed (Treble)
*/
void MainWindow::toneAdjustTrebleChanged(double value)
{
m_settings->toneAdjustTreble(static_cast<int>(value * 100.0));
spinBoxToneAdjustTreble->setPrefix((value > 0) ? "+" : QString());
}
/*
* Tone adjustment has been reset
*/
void MainWindow::toneAdjustTrebleReset()
{
spinBoxToneAdjustBass->setValue(m_settings->toneAdjustBassDefault());
spinBoxToneAdjustTreble->setValue(m_settings->toneAdjustTrebleDefault());
toneAdjustBassChanged(spinBoxToneAdjustBass->value());
toneAdjustTrebleChanged(spinBoxToneAdjustTreble->value());
}
/* /*
* Reset all advanced options to their defaults * Reset all advanced options to their defaults
*/ */
@ -1721,6 +1757,8 @@ void MainWindow::resetAdvancedOptionsButtonClicked()
spinBoxBitrateManagementMin->setValue(m_settings->bitrateManagementMinRateDefault()); spinBoxBitrateManagementMin->setValue(m_settings->bitrateManagementMinRateDefault());
spinBoxBitrateManagementMax->setValue(m_settings->bitrateManagementMaxRateDefault()); spinBoxBitrateManagementMax->setValue(m_settings->bitrateManagementMaxRateDefault());
spinBoxNormalizationFilter->setValue(static_cast<double>(m_settings->normalizationFilterMaxVolumeDefault()) / 100.0); spinBoxNormalizationFilter->setValue(static_cast<double>(m_settings->normalizationFilterMaxVolumeDefault()) / 100.0);
spinBoxToneAdjustBass->setValue(static_cast<double>(m_settings->toneAdjustBassDefault()) / 100.0);
spinBoxToneAdjustTreble->setValue(static_cast<double>(m_settings->toneAdjustTrebleDefault()) / 100.0);
comboBoxMP3ChannelMode->setCurrentIndex(m_settings->lameChannelModeDefault()); comboBoxMP3ChannelMode->setCurrentIndex(m_settings->lameChannelModeDefault());
comboBoxSamplingRate->setCurrentIndex(m_settings->samplingRateDefault()); comboBoxSamplingRate->setCurrentIndex(m_settings->samplingRateDefault());
comboBoxNeroAACProfile->setCurrentIndex(m_settings->neroAACProfileDefault()); comboBoxNeroAACProfile->setCurrentIndex(m_settings->neroAACProfileDefault());

View File

@ -89,6 +89,9 @@ private slots:
void neroAAC2PassChanged(bool checked); void neroAAC2PassChanged(bool checked);
void normalizationEnabledChanged(bool checked); void normalizationEnabledChanged(bool checked);
void normalizationMaxVolumeChanged(double volume); void normalizationMaxVolumeChanged(double volume);
void toneAdjustBassChanged(double value);
void toneAdjustTrebleChanged(double value);
void toneAdjustTrebleReset();
void resetAdvancedOptionsButtonClicked(); void resetAdvancedOptionsButtonClicked();
void sourceModelChanged(void); void sourceModelChanged(void);
void metaTagsEnabledChanged(void); void metaTagsEnabledChanged(void);

View File

@ -34,6 +34,8 @@
#include "Encoder_FLAC.h" #include "Encoder_FLAC.h"
#include "Encoder_Wave.h" #include "Encoder_Wave.h"
#include "Filter_Normalize.h" #include "Filter_Normalize.h"
#include "Filter_Resample.h"
#include "Filter_ToneAdjust.h"
#include "WinSevenTaskbar.h" #include "WinSevenTaskbar.h"
#include <QApplication> #include <QApplication>
@ -428,6 +430,7 @@ void ProcessingDialog::startNextJob(void)
m_currentFile++; m_currentFile++;
AudioFileModel currentFile = updateMetaInfo(m_pendingJobs.takeFirst()); AudioFileModel currentFile = updateMetaInfo(m_pendingJobs.takeFirst());
AbstractEncoder *encoder = NULL; AbstractEncoder *encoder = NULL;
bool nativeResampling = false;
switch(m_settings->compressionEncoder()) switch(m_settings->compressionEncoder())
{ {
@ -441,7 +444,11 @@ void ProcessingDialog::startNextJob(void)
{ {
mp3Encoder->setBitrateLimits(m_settings->bitrateManagementMinRate(), m_settings->bitrateManagementMaxRate()); mp3Encoder->setBitrateLimits(m_settings->bitrateManagementMinRate(), m_settings->bitrateManagementMaxRate());
} }
if(m_settings->samplingRate() > 0)
{
mp3Encoder->setSamplingRate(SettingsModel::samplingRates[m_settings->samplingRate()]); mp3Encoder->setSamplingRate(SettingsModel::samplingRates[m_settings->samplingRate()]);
nativeResampling = true;
}
mp3Encoder->setChannelMode(m_settings->lameChannelMode()); mp3Encoder->setChannelMode(m_settings->lameChannelMode());
encoder = mp3Encoder; encoder = mp3Encoder;
} }
@ -455,7 +462,11 @@ void ProcessingDialog::startNextJob(void)
{ {
vorbisEncoder->setBitrateLimits(m_settings->bitrateManagementMinRate(), m_settings->bitrateManagementMaxRate()); vorbisEncoder->setBitrateLimits(m_settings->bitrateManagementMinRate(), m_settings->bitrateManagementMaxRate());
} }
if(m_settings->samplingRate() > 0)
{
vorbisEncoder->setSamplingRate(SettingsModel::samplingRates[m_settings->samplingRate()]); vorbisEncoder->setSamplingRate(SettingsModel::samplingRates[m_settings->samplingRate()]);
nativeResampling = true;
}
encoder = vorbisEncoder; encoder = vorbisEncoder;
} }
break; break;
@ -497,6 +508,14 @@ void ProcessingDialog::startNextJob(void)
m_settings->prependRelativeSourcePath() m_settings->prependRelativeSourcePath()
); );
if((m_settings->samplingRate() > 0) && !nativeResampling)
{
thread->addFilter(new ResampleFilter(SettingsModel::samplingRates[m_settings->samplingRate()]));
}
if((m_settings->toneAdjustBass() != 0) || (m_settings->toneAdjustTreble() != 0))
{
thread->addFilter(new ToneAdjustFilter(m_settings->toneAdjustBass(), m_settings->toneAdjustTreble()));
}
if(m_settings->normalizationFilterEnabled()) if(m_settings->normalizationFilterEnabled())
{ {
thread->addFilter(new NormalizeFilter(m_settings->normalizationFilterMaxVolume())); thread->addFilter(new NormalizeFilter(m_settings->normalizationFilterMaxVolume()));

View File

@ -51,7 +51,6 @@ bool FLACEncoder::encode(const QString &sourceFile, const AudioFileModel &metaIn
QStringList args; QStringList args;
args << QString("-%1").arg(QString::number(max(0, min(8, m_configBitrate)))); args << QString("-%1").arg(QString::number(max(0, min(8, m_configBitrate))));
qWarning("Year: %u", metaInfo.fileYear());
if(!metaInfo.fileName().isEmpty()) args << "-T" << QString("title=%1").arg(metaInfo.fileName()); if(!metaInfo.fileName().isEmpty()) args << "-T" << QString("title=%1").arg(metaInfo.fileName());
if(!metaInfo.fileArtist().isEmpty()) args << "-T" << QString("artist=%1").arg(metaInfo.fileArtist()); if(!metaInfo.fileArtist().isEmpty()) args << "-T" << QString("artist=%1").arg(metaInfo.fileArtist());

112
src/Filter_Resample.cpp Normal file
View File

@ -0,0 +1,112 @@
///////////////////////////////////////////////////////////////////////////////
// LameXP - Audio Encoder Front-End
// Copyright (C) 2004-2011 LoRd_MuldeR <MuldeR2@GMX.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// http://www.gnu.org/licenses/gpl-2.0.txt
///////////////////////////////////////////////////////////////////////////////
#include "Filter_Resample.h"
#include "Global.h"
#include <QDir>
#include <QProcess>
#include <QRegExp>
ResampleFilter::ResampleFilter(int samplingRate)
:
m_binary(lamexp_lookup_tool("sox.exe"))
{
if(m_binary.isEmpty())
{
throw "Error initializing SoX filter. Tool 'sox.exe' is not registred!";
}
m_samplingRate = min(192000, max(8000, samplingRate));
}
ResampleFilter::~ResampleFilter(void)
{
}
bool ResampleFilter::apply(const QString &sourceFile, const QString &outputFile, volatile bool *abortFlag)
{
QProcess process;
QStringList args;
process.setWorkingDirectory(lamexp_temp_folder());
args << "-V3";
args << "--guard" << "--temp" << ".";
args << QDir::toNativeSeparators(sourceFile);
args << QDir::toNativeSeparators(outputFile);
args << "rate";
args << "-h" << QString::number(m_samplingRate);
if(!startProcess(process, m_binary, args))
{
return false;
}
bool bTimeout = false;
bool bAborted = false;
while(process.state() != QProcess::NotRunning)
{
if(*abortFlag)
{
process.kill();
bAborted = true;
emit messageLogged("\nABORTED BY USER !!!");
break;
}
process.waitForReadyRead();
if(!process.bytesAvailable() && process.state() == QProcess::Running)
{
process.kill();
qWarning("SoX process timed out <-- killing!");
bTimeout = true;
break;
}
while(process.bytesAvailable() > 0)
{
QByteArray line = process.readLine();
QString text = QString::fromUtf8(line.constData()).simplified();
if(!text.isEmpty())
{
emit messageLogged(text);
}
}
}
process.waitForFinished();
if(process.state() != QProcess::NotRunning)
{
process.kill();
process.waitForFinished(-1);
}
emit statusUpdated(100);
emit messageLogged(QString().sprintf("\nExited with code: 0x%04X", process.exitCode()));
if(bTimeout || bAborted || process.exitStatus() != QProcess::NormalExit || QFileInfo(outputFile).size() == 0)
{
return false;
}
return true;
}

37
src/Filter_Resample.h Normal file
View File

@ -0,0 +1,37 @@
///////////////////////////////////////////////////////////////////////////////
// LameXP - Audio Encoder Front-End
// Copyright (C) 2004-2011 LoRd_MuldeR <MuldeR2@GMX.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// http://www.gnu.org/licenses/gpl-2.0.txt
///////////////////////////////////////////////////////////////////////////////
#pragma once
#include "Filter_Abstract.h"
class ResampleFilter : public AbstractFilter
{
public:
ResampleFilter(int samplingRate = 44100);
~ResampleFilter(void);
virtual bool apply(const QString &sourceFile, const QString &outputFile, volatile bool *abortFlag);
private:
const QString m_binary;
int m_samplingRate;
};

120
src/Filter_ToneAdjust.cpp Normal file
View File

@ -0,0 +1,120 @@
///////////////////////////////////////////////////////////////////////////////
// LameXP - Audio Encoder Front-End
// Copyright (C) 2004-2011 LoRd_MuldeR <MuldeR2@GMX.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// http://www.gnu.org/licenses/gpl-2.0.txt
///////////////////////////////////////////////////////////////////////////////
#include "Filter_ToneAdjust.h"
#include "Global.h"
#include <QDir>
#include <QProcess>
#include <QRegExp>
ToneAdjustFilter::ToneAdjustFilter(int bass, int treble)
:
m_binary(lamexp_lookup_tool("sox.exe"))
{
if(m_binary.isEmpty())
{
throw "Error initializing SoX filter. Tool 'sox.exe' is not registred!";
}
m_bass = max(-2000, min(2000, bass));
m_treble = max(-2000, min(2000, treble));
}
ToneAdjustFilter::~ToneAdjustFilter(void)
{
}
bool ToneAdjustFilter::apply(const QString &sourceFile, const QString &outputFile, volatile bool *abortFlag)
{
QProcess process;
QStringList args;
process.setWorkingDirectory(lamexp_temp_folder());
args << "-V3";
args << "--guard" << "--temp" << ".";
args << QDir::toNativeSeparators(sourceFile);
args << QDir::toNativeSeparators(outputFile);
if(m_bass != 0)
{
args << "bass" << QString().sprintf("%s%.2f", ((m_bass < 0) ? "-" : "+"), static_cast<double>(abs(m_bass)) / 100.0);
}
if(m_treble != 0)
{
args << "treble" << QString().sprintf("%s%.2f", ((m_treble < 0) ? "-" : "+"), static_cast<double>(abs(m_treble)) / 100.0);
}
if(!startProcess(process, m_binary, args))
{
return false;
}
bool bTimeout = false;
bool bAborted = false;
while(process.state() != QProcess::NotRunning)
{
if(*abortFlag)
{
process.kill();
bAborted = true;
emit messageLogged("\nABORTED BY USER !!!");
break;
}
process.waitForReadyRead();
if(!process.bytesAvailable() && process.state() == QProcess::Running)
{
process.kill();
qWarning("SoX process timed out <-- killing!");
bTimeout = true;
break;
}
while(process.bytesAvailable() > 0)
{
QByteArray line = process.readLine();
QString text = QString::fromUtf8(line.constData()).simplified();
if(!text.isEmpty())
{
emit messageLogged(text);
}
}
}
process.waitForFinished();
if(process.state() != QProcess::NotRunning)
{
process.kill();
process.waitForFinished(-1);
}
emit statusUpdated(100);
emit messageLogged(QString().sprintf("\nExited with code: 0x%04X", process.exitCode()));
if(bTimeout || bAborted || process.exitStatus() != QProcess::NormalExit || QFileInfo(outputFile).size() == 0)
{
return false;
}
return true;
}

38
src/Filter_ToneAdjust.h Normal file
View File

@ -0,0 +1,38 @@
///////////////////////////////////////////////////////////////////////////////
// LameXP - Audio Encoder Front-End
// Copyright (C) 2004-2011 LoRd_MuldeR <MuldeR2@GMX.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// http://www.gnu.org/licenses/gpl-2.0.txt
///////////////////////////////////////////////////////////////////////////////
#pragma once
#include "Filter_Abstract.h"
class ToneAdjustFilter : public AbstractFilter
{
public:
ToneAdjustFilter(int bass = 0, int treble = 0);
~ToneAdjustFilter(void);
virtual bool apply(const QString &sourceFile, const QString &outputFile, volatile bool *abortFlag);
private:
const QString m_binary;
int m_bass;
int m_treble;
};

View File

@ -61,6 +61,8 @@ static const char *g_settingsId_neroAACEnable2Pass = "AdvancedOptions/NeroAAC/En
static const char *g_settingsId_neroAACProfile = "AdvancedOptions/NeroAAC/ForceProfile"; static const char *g_settingsId_neroAACProfile = "AdvancedOptions/NeroAAC/ForceProfile";
static const char *g_settingsId_normalizationFilterEnabled = "AdvancedOptions/VolumeNormalization/Enabled"; static const char *g_settingsId_normalizationFilterEnabled = "AdvancedOptions/VolumeNormalization/Enabled";
static const char *g_settingsId_normalizationFilterMaxVolume = "AdvancedOptions/VolumeNormalization/MaxVolume"; static const char *g_settingsId_normalizationFilterMaxVolume = "AdvancedOptions/VolumeNormalization/MaxVolume";
static const char *g_settingsId_toneAdjustBass = "AdvancedOptions/ToneAdjustment/Bass";
static const char *g_settingsId_toneAdjustTreble = "AdvancedOptions/ToneAdjustment/Treble";
//Macros //Macros
#define MAKE_OPTION1(OPT,DEF) \ #define MAKE_OPTION1(OPT,DEF) \
@ -227,3 +229,5 @@ MAKE_OPTION3(neroAACEnable2Pass, true)
MAKE_OPTION1(neroAACProfile, 0) MAKE_OPTION1(neroAACProfile, 0)
MAKE_OPTION3(normalizationFilterEnabled, false) MAKE_OPTION3(normalizationFilterEnabled, false)
MAKE_OPTION1(normalizationFilterMaxVolume, -50) MAKE_OPTION1(normalizationFilterMaxVolume, -50)
MAKE_OPTION1(toneAdjustBass, 0)
MAKE_OPTION1(toneAdjustTreble, 0)

View File

@ -93,6 +93,8 @@ public:
MAKE_OPTION_DEC1(neroAACProfile) MAKE_OPTION_DEC1(neroAACProfile)
MAKE_OPTION_DEC3(normalizationFilterEnabled) MAKE_OPTION_DEC3(normalizationFilterEnabled)
MAKE_OPTION_DEC1(normalizationFilterMaxVolume) MAKE_OPTION_DEC1(normalizationFilterMaxVolume)
MAKE_OPTION_DEC1(toneAdjustBass)
MAKE_OPTION_DEC1(toneAdjustTreble)
//Misc //Misc
void validate(void); void validate(void);