summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2019-12-29 12:26:23 +0100
committerDaniel Schürmann <daschuer@mixxx.org>2019-12-29 12:26:23 +0100
commit0a54eb5c294f16124ee3b5fdad16d5127e7848d8 (patch)
tree02bb9ac1256cfef0cf54e558ffb77e29156d46b6 /src
parente1c8b45b64181481546d4497a43212ff72e3d017 (diff)
Split out EncoderRecordingSettings
Diffstat (limited to 'src')
-rw-r--r--src/encoder/encoder.cpp2
-rw-r--r--src/encoder/encoder.h3
-rw-r--r--src/encoder/encoderbroadcastsettings.h4
-rw-r--r--src/encoder/encoderflacsettings.h4
-rw-r--r--src/encoder/encodermp3settings.h4
-rw-r--r--src/encoder/encoderopussettings.h4
-rw-r--r--src/encoder/encoderrecordingsettings.h34
-rw-r--r--src/encoder/encodersettings.h16
-rw-r--r--src/encoder/encodervorbissettings.h4
-rw-r--r--src/encoder/encoderwavesettings.h4
-rw-r--r--src/preferences/dialog/dlgprefrecord.cpp30
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));