OSDN Git Service

Replaced the Opus encoder/decoder binary wit custom binaries that support UTF-8 file...
[lamexp/LameXP.git] / src / Model_Settings.h
index c874a04..2a3da2f 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 // LameXP - Audio Encoder Front-End
-// Copyright (C) 2004-2011 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2012 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
 class QSettings;
 class QString;
 
-#define MAKE_OPTION_DEC1(OPT) \
+///////////////////////////////////////////////////////////////////////////////
+
+#define LAMEXP_MAKE_OPTION_I(OPT) \
 int OPT(void); \
-void OPT(int value);
+void OPT(int value); \
+int OPT##Default(void);
 
-#define MAKE_OPTION_DEC2(OPT) \
+#define LAMEXP_MAKE_OPTION_S(OPT) \
 QString OPT(void); \
-void OPT(const QString &value);
+void OPT(const QString &value); \
+QString OPT##Default(void);
 
-#define MAKE_OPTION_DEC3(OPT) \
+#define LAMEXP_MAKE_OPTION_B(OPT) \
 bool OPT(void); \
-void OPT(bool value);
+void OPT(bool value); \
+bool OPT##Default(void);
+
+#define LAMEXP_MAKE_OPTION_U(OPT) \
+unsigned int OPT(void); \
+void OPT(unsigned int value); \
+unsigned int OPT##Default(void);
+
+///////////////////////////////////////////////////////////////////////////////
 
 class SettingsModel
 {
@@ -48,8 +60,11 @@ public:
                MP3Encoder = 0,
                VorbisEncoder = 1,
                AACEncoder = 2,
-               FLACEncoder = 3,
-               PCMEncoder = 4
+               AC3Encoder = 3,
+               FLACEncoder = 4,
+               OpusEncoder = 5,
+               DCAEncoder = 6,
+               PCMEncoder = 7
        };
        enum RCMode
        {
@@ -60,35 +75,79 @@ public:
        
        //Consts
        static const int mp3Bitrates[15];
+       static const int ac3Bitrates[20];
+       static const int samplingRates[8];
 
        //Getters & setters
-       MAKE_OPTION_DEC1(licenseAccepted);
-       MAKE_OPTION_DEC1(interfaceStyle);
-       MAKE_OPTION_DEC1(compressionEncoder);
-       MAKE_OPTION_DEC1(compressionRCMode);
-       MAKE_OPTION_DEC1(compressionBitrate);
-       MAKE_OPTION_DEC2(outputDir);
-       MAKE_OPTION_DEC3(outputToSourceDir);
-       MAKE_OPTION_DEC3(prependRelativeSourcePath);
-       MAKE_OPTION_DEC3(writeMetaTags);
-       MAKE_OPTION_DEC3(createPlaylist);
-       MAKE_OPTION_DEC2(autoUpdateLastCheck);
-       MAKE_OPTION_DEC3(autoUpdateEnabled);
-       MAKE_OPTION_DEC3(soundsEnabled);
-       MAKE_OPTION_DEC3(neroAacNotificationsEnabled)
-       MAKE_OPTION_DEC3(wmaDecoderNotificationsEnabled)
-       MAKE_OPTION_DEC3(dropBoxWidgetEnabled)
-       MAKE_OPTION_DEC2(currentLanguage);
+       LAMEXP_MAKE_OPTION_I(licenseAccepted);
+       LAMEXP_MAKE_OPTION_I(interfaceStyle);
+       LAMEXP_MAKE_OPTION_I(compressionEncoder);
+       LAMEXP_MAKE_OPTION_I(compressionRCMode);
+       LAMEXP_MAKE_OPTION_I(compressionBitrate);
+       LAMEXP_MAKE_OPTION_S(outputDir);
+       LAMEXP_MAKE_OPTION_B(outputToSourceDir);
+       LAMEXP_MAKE_OPTION_B(prependRelativeSourcePath);
+       LAMEXP_MAKE_OPTION_S(favoriteOutputFolders);
+       LAMEXP_MAKE_OPTION_B(writeMetaTags);
+       LAMEXP_MAKE_OPTION_B(createPlaylist);
+       LAMEXP_MAKE_OPTION_S(autoUpdateLastCheck);
+       LAMEXP_MAKE_OPTION_B(autoUpdateEnabled);
+       LAMEXP_MAKE_OPTION_B(autoUpdateCheckBeta);
+       LAMEXP_MAKE_OPTION_B(soundsEnabled);
+       LAMEXP_MAKE_OPTION_B(neroAacNotificationsEnabled);
+       LAMEXP_MAKE_OPTION_B(antivirNotificationsEnabled);
+       LAMEXP_MAKE_OPTION_B(dropBoxWidgetEnabled);
+       LAMEXP_MAKE_OPTION_B(shellIntegrationEnabled);
+       LAMEXP_MAKE_OPTION_S(currentLanguage);
+       LAMEXP_MAKE_OPTION_I(lameAlgoQuality);
+       LAMEXP_MAKE_OPTION_I(lameChannelMode);
+       LAMEXP_MAKE_OPTION_B(forceStereoDownmix);
+       LAMEXP_MAKE_OPTION_B(bitrateManagementEnabled);
+       LAMEXP_MAKE_OPTION_I(bitrateManagementMinRate);
+       LAMEXP_MAKE_OPTION_I(bitrateManagementMaxRate);
+       LAMEXP_MAKE_OPTION_I(samplingRate);
+       LAMEXP_MAKE_OPTION_B(neroAACEnable2Pass);
+       LAMEXP_MAKE_OPTION_I(aacEncProfile);
+       LAMEXP_MAKE_OPTION_I(aftenAudioCodingMode);
+       LAMEXP_MAKE_OPTION_I(aftenDynamicRangeCompression);
+       LAMEXP_MAKE_OPTION_B(aftenFastBitAllocation);
+       LAMEXP_MAKE_OPTION_I(aftenExponentSearchSize);
+       LAMEXP_MAKE_OPTION_I(opusOptimizeFor);
+       LAMEXP_MAKE_OPTION_I(opusComplexity);
+       LAMEXP_MAKE_OPTION_I(opusFramesize);
+       LAMEXP_MAKE_OPTION_B(normalizationFilterEnabled);
+       LAMEXP_MAKE_OPTION_I(normalizationFilterMaxVolume);
+       LAMEXP_MAKE_OPTION_I(normalizationFilterEqualizationMode);
+       LAMEXP_MAKE_OPTION_I(toneAdjustBass);
+       LAMEXP_MAKE_OPTION_I(toneAdjustTreble);
+       LAMEXP_MAKE_OPTION_S(customParametersLAME);
+       LAMEXP_MAKE_OPTION_S(customParametersOggEnc);
+       LAMEXP_MAKE_OPTION_S(customParametersAacEnc);
+       LAMEXP_MAKE_OPTION_S(customParametersAften);
+       LAMEXP_MAKE_OPTION_S(customParametersFLAC);
+       LAMEXP_MAKE_OPTION_B(renameOutputFilesEnabled);
+       LAMEXP_MAKE_OPTION_S(renameOutputFilesPattern);
+       LAMEXP_MAKE_OPTION_U(metaInfoPosition);
+       LAMEXP_MAKE_OPTION_U(maximumInstances);
+       LAMEXP_MAKE_OPTION_S(customTempPath);
+       LAMEXP_MAKE_OPTION_B(customTempPathEnabled);
+       LAMEXP_MAKE_OPTION_B(slowStartup);
+       LAMEXP_MAKE_OPTION_S(mostRecentInputPath);
+       LAMEXP_MAKE_OPTION_B(hibernateComputer);
 
        //Misc
        void validate(void);
-
+       
 private:
        QSettings *m_settings;
        QString *m_defaultLanguage;
        QString defaultLanguage(void);
+       QString initDirectory(const QString &path);
 };
 
-#undef MAKE_OPTION_DEC1
-#undef MAKE_OPTION_DEC2
-#undef MAKE_OPTION_DEC3
+///////////////////////////////////////////////////////////////////////////////
+
+#undef LAMEXP_MAKE_OPTION_I
+#undef LAMEXP_MAKE_OPTION_S
+#undef LAMEXP_MAKE_OPTION_B
+#undef LAMEXP_MAKE_OPTION_U