diff options
author | Daniel Schürmann <daschuer@mixxx.org> | 2019-12-29 12:26:23 +0100 |
---|---|---|
committer | Daniel Schürmann <daschuer@mixxx.org> | 2019-12-29 12:26:23 +0100 |
commit | 0a54eb5c294f16124ee3b5fdad16d5127e7848d8 (patch) | |
tree | 02bb9ac1256cfef0cf54e558ffb77e29156d46b6 /src | |
parent | e1c8b45b64181481546d4497a43212ff72e3d017 (diff) |
Split out EncoderRecordingSettings
Diffstat (limited to 'src')
-rw-r--r-- | src/encoder/encoder.cpp | 2 | ||||
-rw-r--r-- | src/encoder/encoder.h | 3 | ||||
-rw-r--r-- | src/encoder/encoderbroadcastsettings.h | 4 | ||||
-rw-r--r-- | src/encoder/encoderflacsettings.h | 4 | ||||
-rw-r--r-- | src/encoder/encodermp3settings.h | 4 | ||||
-rw-r--r-- | src/encoder/encoderopussettings.h | 4 | ||||
-rw-r--r-- | src/encoder/encoderrecordingsettings.h | 34 | ||||
-rw-r--r-- | src/encoder/encodersettings.h | 16 | ||||
-rw-r--r-- | src/encoder/encodervorbissettings.h | 4 | ||||
-rw-r--r-- | src/encoder/encoderwavesettings.h | 4 | ||||
-rw-r--r-- | src/preferences/dialog/dlgprefrecord.cpp | 30 |
11 files changed, 69 insertions, 40 deletions
diff --git a/src/encoder/encoder.cpp b/src/encoder/encoder.cpp index 9e727c1ade..7efba0eea5 100644 --- a/src/encoder/encoder.cpp +++ b/src/encoder/encoder.cpp @@ -125,7 +125,7 @@ EncoderPointer EncoderFactory::getNewEncoder(Encoder::Format format, return pEncoder; } -EncoderSettingsPointer EncoderFactory::getEncoderSettings(Encoder::Format format, +EncoderRecordingSettingsPointer EncoderFactory::getEncoderRecordingSettings(Encoder::Format format, UserSettingsPointer pConfig) const { if (format.internalName == ENCODING_WAVE) { diff --git a/src/encoder/encoder.h b/src/encoder/encoder.h index 7ed0e431d4..193a62d8a2 100644 --- a/src/encoder/encoder.h +++ b/src/encoder/encoder.h @@ -14,6 +14,7 @@ #include "util/types.h" #include "preferences/usersettings.h" #include "encoder/encodersettings.h" +#include "encoder/encoderrecordingsettings.h" #include "encoder/encodercallback.h" class Encoder { @@ -57,7 +58,7 @@ class EncoderFactory { UserSettingsPointer pConfig, EncoderCallback* pCallback) const; EncoderPointer getNewEncoder(Encoder::Format format, UserSettingsPointer pConfig, EncoderCallback* pCallback) const; - EncoderSettingsPointer getEncoderSettings(Encoder::Format format, + EncoderRecordingSettingsPointer getEncoderRecordingSettings(Encoder::Format format, UserSettingsPointer pConfig) const; private: static EncoderFactory factory; diff --git a/src/encoder/encoderbroadcastsettings.h b/src/encoder/encoderbroadcastsettings.h index 955e314245..0953c1eef5 100644 --- a/src/encoder/encoderbroadcastsettings.h +++ b/src/encoder/encoderbroadcastsettings.h @@ -9,11 +9,11 @@ #ifndef ENCODERBROADCASTSETTINGS_H #define ENCODERBROADCASTSETTINGS_H -#include "encoder/encodersettings.h" +#include "encoder/encoderrecordingsettings.h" #include "encoder/encoder.h" #include "preferences/broadcastsettings.h" -class EncoderBroadcastSettings : public EncoderSettings { +class EncoderBroadcastSettings : public EncoderRecordingSettings { public: EncoderBroadcastSettings(BroadcastProfilePtr profile); virtual ~EncoderBroadcastSettings(); diff --git a/src/encoder/encoderflacsettings.h b/src/encoder/encoderflacsettings.h index 10efa2bcae..f102159bfd 100644 --- a/src/encoder/encoderflacsettings.h +++ b/src/encoder/encoderflacsettings.h @@ -8,10 +8,10 @@ #ifndef ENCODERFLACSETTINGS_H #define ENCODERFLACSETTINGS_H -#include "encoder/encodersettings.h" +#include "encoder/encoderrecordingsettings.h" #include "encoder/encoder.h" -class EncoderFlacSettings : public EncoderSettings { +class EncoderFlacSettings : public EncoderRecordingSettings { public: EncoderFlacSettings(UserSettingsPointer pConfig); virtual ~EncoderFlacSettings(); diff --git a/src/encoder/encodermp3settings.h b/src/encoder/encodermp3settings.h index 01af4c0036..e476f7fe5c 100644 --- a/src/encoder/encodermp3settings.h +++ b/src/encoder/encodermp3settings.h @@ -8,10 +8,10 @@ #ifndef ENCODERMP3SETTINGS_H #define ENCODERMP3SETTINGS_H -#include "encoder/encodersettings.h" +#include "encoder/encoderrecordingsettings.h" #include "encoder/encoder.h" -class EncoderMp3Settings : public EncoderSettings { +class EncoderMp3Settings : public EncoderRecordingSettings { public: EncoderMp3Settings(UserSettingsPointer m_pConfig); virtual ~EncoderMp3Settings(); diff --git a/src/encoder/encoderopussettings.h b/src/encoder/encoderopussettings.h index 6b351c76fd..398210da58 100644 --- a/src/encoder/encoderopussettings.h +++ b/src/encoder/encoderopussettings.h @@ -4,7 +4,7 @@ #ifndef ENCODER_ENCODEROPUSSETTINGS_H #define ENCODER_ENCODEROPUSSETTINGS_H -#include "encoder/encodersettings.h" +#include "encoder/encoderrecordingsettings.h" #include "encoder/encoder.h" #define OPUS_BITRATE_MODES_COUNT 3 @@ -12,7 +12,7 @@ #define OPUS_BITRATE_CBR 1 #define OPUS_BITRATE_VBR 2 -class EncoderOpusSettings: public EncoderSettings { +class EncoderOpusSettings: public EncoderRecordingSettings { public: explicit EncoderOpusSettings(UserSettingsPointer pConfig); ~EncoderOpusSettings() override = default; diff --git a/src/encoder/encoderrecordingsettings.h b/src/encoder/encoderrecordingsettings.h new file mode 100644 index 0000000000..d68e019ed0 --- /dev/null +++ b/src/encoder/encoderrecordingsettings.h @@ -0,0 +1,34 @@ +#pragma once + +#include "encoder/encodersettings.h" + +class EncoderRecordingSettings : public EncoderSettings { + public: + ~EncoderRecordingSettings() override = default; + + // Indicates that it uses the quality slider section of the preferences + virtual bool usesQualitySlider() const = 0; + // Indicates that it uses the compression slider section of the preferences + virtual bool usesCompressionSlider() const = 0; + // Indicates that it uses the radio button section of the preferences. + virtual bool usesOptionGroups() const = 0; + + virtual void setQualityByIndex(int qualityIndex) { + Q_UNUSED(qualityIndex); + } + + // Sets the compression level + virtual void setCompression(int compression) { + Q_UNUSED(compression); + } + + // Selects the option by its index. If it is a single-element option, + // index 0 means disabled and 1 enabled. + virtual void setGroupOption(QString groupCode, int optionIndex) { + Q_UNUSED(groupCode); + Q_UNUSED(optionIndex); + } +}; + +typedef std::shared_ptr<EncoderRecordingSettings> EncoderRecordingSettingsPointer; + diff --git a/src/encoder/encodersettings.h b/src/encoder/encodersettings.h index f44f343852..05d8366b80 100644 --- a/src/encoder/encodersettings.h +++ b/src/encoder/encodersettings.h @@ -28,21 +28,10 @@ class EncoderSettings { STEREO=2 }; - EncoderSettings() {} - virtual ~EncoderSettings() {} - - // Indicates that it uses the quality slider section of the preferences - virtual bool usesQualitySlider() const = 0; - // Indicates that it uses the compression slider section of the preferences - virtual bool usesCompressionSlider() const = 0; - // Indicates that it uses the radio button section of the preferences. - virtual bool usesOptionGroups() const = 0; + virtual ~EncoderSettings() = default; // Returns the list of quality values supported, to assign them to the slider virtual QList<int> getQualityValues() const { return QList<int>(); } - // Sets the quality value by its value - // Sets the quality value by its index - virtual void setQualityByIndex(int qualityIndex) { Q_UNUSED(qualityIndex); } virtual int getQuality() const { return 0; } virtual int getQualityIndex() const { return 0; } // Returns the list of compression values supported, to assign them to the slider @@ -54,9 +43,6 @@ class EncoderSettings { virtual QList<OptionsGroup> getOptionGroups() const { return QList<OptionsGroup>(); } // Selects the option by its index. If it is a single-element option, // index 0 means disabled and 1 enabled. - virtual void setGroupOption(QString groupCode, int optionIndex) { - Q_UNUSED(groupCode); - Q_UNUSED(optionIndex); } // Return the selected option of the group. If it is a single-element option, // 0 means disabled and 1 enabled. virtual int getSelectedOption(QString groupCode) const { Q_UNUSED(groupCode); return 0; } diff --git a/src/encoder/encodervorbissettings.h b/src/encoder/encodervorbissettings.h index 5ab9f558af..d4d22739a3 100644 --- a/src/encoder/encodervorbissettings.h +++ b/src/encoder/encodervorbissettings.h @@ -8,10 +8,10 @@ #ifndef ENCODERVORBISSETTINGS_H #define ENCODERVORBISSETTINGS_H -#include "encoder/encodersettings.h" +#include "encoder/encoderrecordingsettings.h" #include "encoder/encoder.h" -class EncoderVorbisSettings : public EncoderSettings { +class EncoderVorbisSettings : public EncoderRecordingSettings { public: EncoderVorbisSettings(UserSettingsPointer pConfig); virtual ~EncoderVorbisSettings(); diff --git a/src/encoder/encoderwavesettings.h b/src/encoder/encoderwavesettings.h index 1519c6926c..eba1dab046 100644 --- a/src/encoder/encoderwavesettings.h +++ b/src/encoder/encoderwavesettings.h @@ -8,11 +8,11 @@ #ifndef ENCODERWAVESETTINGS_H #define ENCODERWAVESETTINGS_H -#include "encoder/encodersettings.h" +#include "encoder/encoderrecordingsettings.h" #include "encoder/encoder.h" #include <QList> -class EncoderWaveSettings : public EncoderSettings { +class EncoderWaveSettings : public EncoderRecordingSettings { public: EncoderWaveSettings(UserSettingsPointer pConfig, QString format); virtual ~EncoderWaveSettings(); diff --git a/src/preferences/dialog/dlgprefrecord.cpp b/src/preferences/dialog/dlgprefrecord.cpp index acffbbb5ff..063955813f 100644 --- a/src/preferences/dialog/dlgprefrecord.cpp +++ b/src/preferences/dialog/dlgprefrecord.cpp @@ -223,7 +223,9 @@ void DlgPrefRecord::slotFormatChanged() void DlgPrefRecord::setupEncoderUI(Encoder::Format selformat) { - EncoderSettingsPointer settings = EncoderFactory::getFactory().getEncoderSettings(selformat, m_pConfig); + EncoderRecordingSettingsPointer settings = + EncoderFactory::getFactory().getEncoderRecordingSettings( + selformat, m_pConfig); if (settings->usesQualitySlider()) { LabelQuality->setVisible(true); SliderQuality->setVisible(true); @@ -304,9 +306,10 @@ void DlgPrefRecord::slotSliderQuality() // Settings are only stored when doing an apply so that "cancel" can actually cancel. } -void DlgPrefRecord::updateTextQuality() -{ - EncoderSettingsPointer settings = EncoderFactory::getFactory().getEncoderSettings(m_selFormat, m_pConfig); +void DlgPrefRecord::updateTextQuality() { + EncoderRecordingSettingsPointer settings = + EncoderFactory::getFactory().getEncoderRecordingSettings( + m_selFormat, m_pConfig); int quality; // This should be handled somehow by the EncoderSettings classes, but currently // I don't have a clean way to do it @@ -338,9 +341,11 @@ void DlgPrefRecord::slotSliderCompression() updateTextCompression(); // Settings are only stored when doing an apply so that "cancel" can actually cancel. } -void DlgPrefRecord::updateTextCompression() -{ - EncoderSettingsPointer settings = EncoderFactory::getFactory().getEncoderSettings(m_selFormat, m_pConfig); + +void DlgPrefRecord::updateTextCompression() { + EncoderRecordingSettingsPointer settings = + EncoderFactory::getFactory().getEncoderRecordingSettings( + m_selFormat, m_pConfig); int quality = settings->getCompressionValues().at(SliderCompression->value()); TextCompression->setText(QString::number(quality)); } @@ -349,7 +354,9 @@ void DlgPrefRecord::slotGroupChanged() { // On complex scenarios, one could want to enable or disable some controls when changing // these, but we don't have these needs now. - EncoderSettingsPointer settings = EncoderFactory::getFactory().getEncoderSettings(m_selFormat, m_pConfig); + EncoderRecordingSettingsPointer settings = + EncoderFactory::getFactory().getEncoderRecordingSettings( + m_selFormat, m_pConfig); if (settings->usesQualitySlider()) { updateTextQuality(); } @@ -379,10 +386,11 @@ void DlgPrefRecord::saveMetaData() m_pConfig->set(ConfigKey(RECORDING_PREF_KEY, "Author"), ConfigValue(LineEditAuthor->text())); m_pConfig->set(ConfigKey(RECORDING_PREF_KEY, "Album"), ConfigValue(LineEditAlbum->text())); } -void DlgPrefRecord::saveEncoding() -{ - EncoderSettingsPointer settings = EncoderFactory::getFactory().getEncoderSettings(m_selFormat, m_pConfig); +void DlgPrefRecord::saveEncoding() { + EncoderRecordingSettingsPointer settings = + EncoderFactory::getFactory().getEncoderRecordingSettings( + m_selFormat, m_pConfig); m_pConfig->set(ConfigKey(RECORDING_PREF_KEY, "Encoding"), ConfigValue(m_selFormat.internalName)); |