///////////////////////////////////////////////////////////////////////////////
// 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
{
MP3Encoder = 0,
VorbisEncoder = 1,
AACEncoder = 2,
- FLACEncoder = 3,
- PCMEncoder = 4
+ AC3Encoder = 3,
+ FLACEncoder = 4,
+ OpusEncoder = 5,
+ DCAEncoder = 6,
+ PCMEncoder = 7
};
enum RCMode
{
//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