summaryrefslogtreecommitdiffstats
path: root/src/DabModulator.cpp
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2019-01-22 10:08:07 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2019-01-22 10:08:07 +0100
commitbedf7e60522bb34b19f4a28b8866aea7062c9054 (patch)
tree1ea63e33b03b314bd00148a5bf992f9a16139431 /src/DabModulator.cpp
parent9c72ead2dadad8982f345e4f5c1d8206668ebc61 (diff)
downloaddabmod-bedf7e60522bb34b19f4a28b8866aea7062c9054.tar.gz
dabmod-bedf7e60522bb34b19f4a28b8866aea7062c9054.tar.bz2
dabmod-bedf7e60522bb34b19f4a28b8866aea7062c9054.zip
Add modulator rate (r/o) to RC
Diffstat (limited to 'src/DabModulator.cpp')
-rw-r--r--src/DabModulator.cpp34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/DabModulator.cpp b/src/DabModulator.cpp
index ca958e3..666745d 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) 2018
+ Copyright (C) 2019
Matthias P. Braendli, matthias.braendli@mpb.li
http://opendigitalradio.org
@@ -58,15 +58,20 @@
#include "RemoteControl.h"
#include "Log.h"
+using namespace std;
+
DabModulator::DabModulator(EtiSource& etiSource,
mod_settings_t& settings) :
ModInput(),
+ RemoteControllable("modulator"),
m_settings(settings),
myEtiSource(etiSource),
myFlowgraph()
{
PDEBUG("DabModulator::DabModulator() @ %p\n", this);
+ RC_ADD_PARAMETER(rate, "(Read-only) IQ output samplerate");
+
if (m_settings.dabMode == 0) {
setMode(2);
}
@@ -385,3 +390,30 @@ meta_vec_t DabModulator::process_metadata(const meta_vec_t& metadataIn)
return {};
}
+
+void DabModulator::set_parameter(const string& parameter, const string& value)
+{
+ if (parameter == "rate") {
+ throw ParameterError("Parameter 'rate' is read-only");
+ }
+ else {
+ stringstream ss;
+ ss << "Parameter '" << parameter <<
+ "' is not exported by controllable " << get_rc_name();
+ throw ParameterError(ss.str());
+ }
+}
+
+const string DabModulator::get_parameter(const string& parameter) const
+{
+ stringstream ss;
+ if (parameter == "rate") {
+ ss << m_settings.outputRate;
+ }
+ else {
+ ss << "Parameter '" << parameter <<
+ "' is not exported by controllable " << get_rc_name();
+ throw ParameterError(ss.str());
+ }
+ return ss.str();
+}