From 987a31954ea574e04c2e79fe3765448c1b607e49 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Fri, 17 Mar 2017 14:01:05 +0100 Subject: Add gainmode var variance to config file --- src/ConfigParser.cpp | 2 ++ src/ConfigParser.h | 1 + src/DabMod.cpp | 2 ++ src/DabModulator.cpp | 6 ++++-- src/DabModulator.h | 4 +++- src/GainControl.cpp | 5 +++-- src/GainControl.h | 3 ++- 7 files changed, 17 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/ConfigParser.cpp b/src/ConfigParser.cpp index a1e6e34..393f58a 100644 --- a/src/ConfigParser.cpp +++ b/src/ConfigParser.cpp @@ -154,6 +154,8 @@ static void parse_configfile( // modulator parameters: const string gainMode_setting = pt.get("modulator.gainmode", "var"); mod_settings.gainMode = parse_gainmode(gainMode_setting); + mod_settings.gainmodeVariance = pt.get("modulator.normalise_variance", + mod_settings.gainmodeVariance); mod_settings.dabMode = pt.get("modulator.mode", mod_settings.dabMode); mod_settings.clockRate = pt.get("modulator.dac_clk_rate", (size_t)0); diff --git a/src/ConfigParser.h b/src/ConfigParser.h index fe48f01..02b798a 100644 --- a/src/ConfigParser.h +++ b/src/ConfigParser.h @@ -58,6 +58,7 @@ struct mod_settings_t { float digitalgain = 1.0f; float normalise = 1.0f; GainMode gainMode = GainMode::GAIN_VAR; + float gainmodeVariance = 4.0f; // To handle the timestamp offset of the modulator unsigned tist_delay_stages = 0; diff --git a/src/DabMod.cpp b/src/DabMod.cpp index 7fc395e..301b078 100644 --- a/src/DabMod.cpp +++ b/src/DabMod.cpp @@ -307,6 +307,7 @@ int launch_modulator(int argc, char* argv[]) mod_settings.gainMode, mod_settings.digitalgain, mod_settings.normalise, + mod_settings.gainmodeVariance, mod_settings.filterTapsFilename); if (format_converter) { @@ -410,6 +411,7 @@ int launch_modulator(int argc, char* argv[]) mod_settings.gainMode, mod_settings.digitalgain, mod_settings.normalise, + mod_settings.gainmodeVariance, mod_settings.filterTapsFilename); if (format_converter) { diff --git a/src/DabModulator.cpp b/src/DabModulator.cpp index 678d175..c41b8fc 100644 --- a/src/DabModulator.cpp +++ b/src/DabModulator.cpp @@ -3,7 +3,7 @@ Her Majesty the Queen in Right of Canada (Communications Research Center Canada) - Copyright (C) 2016 + Copyright (C) 2017 Matthias P. Braendli, matthias.braendli@mpb.li http://opendigitalradio.org @@ -60,6 +60,7 @@ DabModulator::DabModulator( unsigned outputRate, unsigned clockRate, unsigned dabMode, GainMode gainMode, float& digGain, float normalise, + float gainmodeVariance, const std::string& filterTapsFilename ) : ModInput(), @@ -69,6 +70,7 @@ DabModulator::DabModulator( myGainMode(gainMode), myDigGain(digGain), myNormalise(normalise), + myGainmodeVariance(gainmodeVariance), myEtiSource(etiSource), myFlowgraph(NULL), myFilterTapsFilename(filterTapsFilename), @@ -201,7 +203,7 @@ int DabModulator::process(Buffer* dataOut) (1 + myNbSymbols), myNbCarriers, mySpacing); auto cifGain = make_shared( - mySpacing, myGainMode, myDigGain, myNormalise); + mySpacing, myGainMode, myDigGain, myNormalise, myGainmodeVariance); rcs.enrol(cifGain.get()); diff --git a/src/DabModulator.h b/src/DabModulator.h index d768875..c9bdbe1 100644 --- a/src/DabModulator.h +++ b/src/DabModulator.h @@ -3,7 +3,7 @@ Her Majesty the Queen in Right of Canada (Communications Research Center Canada) - Copyright (C) 2016 + Copyright (C) 2017 Matthias P. Braendli, matthias.braendli@mpb.li http://opendigitalradio.org @@ -54,6 +54,7 @@ public: unsigned outputRate, unsigned clockRate, unsigned dabMode, GainMode gainMode, float& digGain, float normalise, + float gainmodeVariance, const std::string& filterTapsFilename); DabModulator(const DabModulator& other) = delete; DabModulator& operator=(const DabModulator& other) = delete; @@ -74,6 +75,7 @@ protected: GainMode myGainMode; float& myDigGain; float myNormalise; + float myGainmodeVariance; EtiSource& myEtiSource; Flowgraph* myFlowgraph; OutputMemory* myOutput; diff --git a/src/GainControl.cpp b/src/GainControl.cpp index 81ae06e..9eb1678 100644 --- a/src/GainControl.cpp +++ b/src/GainControl.cpp @@ -48,7 +48,8 @@ static float var_variance; GainControl::GainControl(size_t framesize, GainMode mode, float& digGain, - float normalise) : + float normalise, + float varVariance) : PipelinedModCodec(), RemoteControllable("gain"), #ifdef __SSE__ @@ -58,7 +59,7 @@ GainControl::GainControl(size_t framesize, #endif m_digGain(digGain), m_normalise(normalise), - m_var_variance_rc(4.0f), + m_var_variance_rc(varVariance), m_gainmode(mode), m_mutex() { diff --git a/src/GainControl.h b/src/GainControl.h index 8935fc3..e8f1be9 100644 --- a/src/GainControl.h +++ b/src/GainControl.h @@ -53,7 +53,8 @@ class GainControl : public PipelinedModCodec, public RemoteControllable GainControl(size_t framesize, GainMode mode, float& digGain, - float normalise); + float normalise, + float varVariance); virtual ~GainControl(); GainControl(const GainControl&); -- cgit v1.2.3