diff options
author | KuntzeM <github@kuntze.email> | 2020-03-15 13:46:08 +0100 |
---|---|---|
committer | KuntzeM <github@kuntze.email> | 2020-03-15 13:46:08 +0100 |
commit | fc1f1640278e7eb228ec1a6290d30b95f1b6a476 (patch) | |
tree | 85359cd0d8cb7e27d20df260a645c8bc38e758db /src/MuxElements.cpp | |
parent | 5340215304193f18af3bc76c7ae7a6a79f008339 (diff) | |
download | dabmux-fc1f1640278e7eb228ec1a6290d30b95f1b6a476.tar.gz dabmux-fc1f1640278e7eb228ec1a6290d30b95f1b6a476.tar.bz2 dabmux-fc1f1640278e7eb228ec1a6290d30b95f1b6a476.zip |
add linkage set activator flag to remote controllable
Diffstat (limited to 'src/MuxElements.cpp')
-rw-r--r-- | src/MuxElements.cpp | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/src/MuxElements.cpp b/src/MuxElements.cpp index cb2d545..70930cb 100644 --- a/src/MuxElements.cpp +++ b/src/MuxElements.cpp @@ -805,22 +805,11 @@ size_t DabSubchannel::readFrame(uint8_t *buffer, size_t size, std::time_t second throw logic_error("Unhandled case"); } -LinkageSet::LinkageSet(const std::string& name, - uint16_t lsn, - bool active, - bool hard, - bool international) : - lsn(lsn), - active(active), - hard(hard), - international(international), - m_name(name) -{} LinkageSet LinkageSet::filter_type(const ServiceLinkType type) { - LinkageSet lsd(m_name, lsn, active, hard, international); + LinkageSet lsd(m_rc_name, lsn, active, hard, international); lsd.active = active; lsd.keyservice = keyservice; @@ -833,3 +822,39 @@ LinkageSet LinkageSet::filter_type(const ServiceLinkType type) return lsd; } + + +void LinkageSet::set_parameter(const string& parameter, + const string& value) +{ + if (parameter == "active") { + stringstream ss; + ss << value; + + lock_guard<mutex> lock(m_active_mutex); + ss >> active; + } + else { + stringstream ss; + ss << "Parameter '" << parameter << + "' is not exported by controllable " << get_rc_name(); + throw ParameterError(ss.str()); + } +} + +const string LinkageSet::get_parameter(const string& parameter) const +{ + using namespace std::chrono; + + stringstream ss; + if (parameter == "active") { + lock_guard<mutex> lock(m_active_mutex); + ss << active; + } + else { + ss << "Parameter '" << parameter << + "' is not exported by controllable " << get_rc_name(); + throw ParameterError(ss.str()); + } + return ss.str(); +} |