Add setting for setting reply gain fallback gain

This commit is contained in:
Jonas Kvinge
2021-04-22 21:55:26 +02:00
parent 48f8468e65
commit 9d3000498b
8 changed files with 75 additions and 19 deletions

View File

@@ -46,7 +46,8 @@ Engine::Base::Base()
device_(QVariant()),
rg_enabled_(false),
rg_mode_(0),
rg_preamp_(0),
rg_preamp_(0.0),
rg_fallbackgain_(0.0),
rg_compression_(true),
buffer_duration_nanosec_(BackendSettingsPage::kDefaultBufferDuration * kNsecPerMsec),
buffer_low_watermark_(BackendSettingsPage::kDefaultBufferLowWatermark),
@@ -115,7 +116,8 @@ void Engine::Base::ReloadSettings() {
rg_enabled_ = s.value("rgenabled", false).toBool();
rg_mode_ = s.value("rgmode", 0).toInt();
rg_preamp_ = s.value("rgpreamp", 0.0).toFloat();
rg_preamp_ = s.value("rgpreamp", 0.0).toDouble();
rg_fallbackgain_ = s.value("rgfallbackgain", 0.0).toDouble();
rg_compression_ = s.value("rgcompression", true).toBool();
fadeout_enabled_ = s.value("FadeoutEnabled", false).toBool();

View File

@@ -180,7 +180,8 @@ class Base : public QObject {
// ReplayGain
bool rg_enabled_;
int rg_mode_;
float rg_preamp_;
double rg_preamp_;
double rg_fallbackgain_;
bool rg_compression_;
// Buffering

View File

@@ -812,7 +812,7 @@ std::shared_ptr<GstEnginePipeline> GstEngine::CreatePipeline() {
ret->set_volume_enabled(volume_control_);
ret->set_stereo_balancer_enabled(stereo_balancer_enabled_);
ret->set_equalizer_enabled(equalizer_enabled_);
ret->set_replaygain(rg_enabled_, rg_mode_, rg_preamp_, rg_compression_);
ret->set_replaygain(rg_enabled_, rg_mode_, rg_preamp_, rg_fallbackgain_, rg_compression_);
ret->set_buffer_duration_nanosec(buffer_duration_nanosec_);
ret->set_buffer_low_watermark(buffer_low_watermark_);
ret->set_buffer_high_watermark(buffer_high_watermark_);

View File

@@ -79,6 +79,7 @@ GstEnginePipeline::GstEnginePipeline(GstEngine *engine)
eq_preamp_(0),
rg_mode_(0),
rg_preamp_(0.0),
rg_fallbackgain_(0.0),
rg_compression_(true),
buffer_duration_nanosec_(BackendSettingsPage::kDefaultBufferDuration * kNsecPerMsec),
buffer_low_watermark_(BackendSettingsPage::kDefaultBufferLowWatermark),
@@ -176,11 +177,12 @@ void GstEnginePipeline::set_equalizer_enabled(const bool enabled) {
if (pipeline_) UpdateEqualizer();
}
void GstEnginePipeline::set_replaygain(const bool enabled, const int mode, const float preamp, const bool compression) {
void GstEnginePipeline::set_replaygain(const bool enabled, const int mode, const double preamp, const double fallbackgain, const bool compression) {
rg_enabled_ = enabled;
rg_mode_ = mode;
rg_preamp_ = preamp;
rg_fallbackgain_ = fallbackgain;
rg_compression_ = compression;
}
@@ -376,7 +378,8 @@ bool GstEnginePipeline::InitAudioBin() {
eventprobe = rgconverter;
// Set replaygain settings
g_object_set(G_OBJECT(rgvolume), "album-mode", rg_mode_, nullptr);
g_object_set(G_OBJECT(rgvolume), "pre-amp", double(rg_preamp_), nullptr);
g_object_set(G_OBJECT(rgvolume), "pre-amp", rg_preamp_, nullptr);
g_object_set(G_OBJECT(rgvolume), "fallback-gain", rg_fallbackgain_, nullptr);
g_object_set(G_OBJECT(rglimiter), "enabled", int(rg_compression_), nullptr);
}
}

View File

@@ -69,7 +69,7 @@ class GstEnginePipeline : public QObject {
void set_volume_enabled(const bool enabled);
void set_stereo_balancer_enabled(const bool enabled);
void set_equalizer_enabled(const bool enabled);
void set_replaygain(const bool enabled, const int mode, const float preamp, const bool compression);
void set_replaygain(const bool enabled, const int mode, const double preamp, const double fallbackgain, const bool compression);
void set_buffer_duration_nanosec(const qint64 duration_nanosec);
void set_buffer_low_watermark(const double value);
void set_buffer_high_watermark(const double value);
@@ -205,7 +205,8 @@ class GstEnginePipeline : public QObject {
// ReplayGain
int rg_mode_;
float rg_preamp_;
double rg_preamp_;
double rg_fallbackgain_;
bool rg_compression_;
// Buffering