diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2016-09-30 11:31:31 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2016-09-30 11:31:31 +0200 |
commit | 9db03b9e567ca4c716aedd017013069a54f0d66f (patch) | |
tree | a6f72e2cadd20c6e4c9120401c016640613875ed /src/MuxElements.cpp | |
parent | 38e1b9ca1932c922fc8f64e91596d02961ae3cc1 (diff) | |
download | dabmux-9db03b9e567ca4c716aedd017013069a54f0d66f.tar.gz dabmux-9db03b9e567ca4c716aedd017013069a54f0d66f.tar.bz2 dabmux-9db03b9e567ca4c716aedd017013069a54f0d66f.zip |
Add Linkage data structures to MuxElements
Diffstat (limited to 'src/MuxElements.cpp')
-rw-r--r-- | src/MuxElements.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/MuxElements.cpp b/src/MuxElements.cpp index 773ec17..b2f8bca 100644 --- a/src/MuxElements.cpp +++ b/src/MuxElements.cpp @@ -662,4 +662,54 @@ unsigned short DabSubchannel::getSizeDWord(void) const return (bitrate * 3) >> 3; } +static string lsn_to_rc_name(uint16_t lsn) +{ + std::stringstream ss; + ss << "linkset" << + std::uppercase << + std::setfill('0') << + std::setw(4) << + std::hex << + lsn; + return ss.str(); +} + +LinkageSet::LinkageSet(uint16_t lsn, bool hard, bool international) : + RemoteControllable(lsn_to_rc_name(lsn)), + m_lsn(lsn), + m_active(false), + m_hard(hard), + m_international(international) +{ + RC_ADD_PARAMETER(active, "Activate this linkage set [0 or 1]"); +} + +void LinkageSet::set_parameter(const string& parameter, const string& value) +{ + if (parameter == "active") { + stringstream ss; + ss << value; + ss >> m_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 +{ + stringstream ss; + if (parameter == "active") { + ss << m_active; + } + else { + ss << "Parameter '" << parameter << + "' is not exported by controllable " << get_rc_name(); + throw ParameterError(ss.str()); + } + return ss.str(); +} |