summaryrefslogtreecommitdiffstats
path: root/src/MuxElements.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/MuxElements.cpp')
-rw-r--r--src/MuxElements.cpp33
1 files changed, 26 insertions, 7 deletions
diff --git a/src/MuxElements.cpp b/src/MuxElements.cpp
index 656e294..510775e 100644
--- a/src/MuxElements.cpp
+++ b/src/MuxElements.cpp
@@ -663,12 +663,12 @@ unsigned short DabSubchannel::getSizeDWord(void) const
}
LinkageSet::LinkageSet(string name, uint16_t lsn, bool hard, bool international) :
- RemoteControllable(name),
- lsn(lsn),
- active(false),
- hard(hard),
- international(international)
+ RemoteControllable(name)
{
+ data.lsn = lsn;
+ data.active = false;
+ data.hard = hard;
+ data.international = international;
RC_ADD_PARAMETER(active, "Activate this linkage set [0 or 1]");
}
@@ -677,7 +677,7 @@ void LinkageSet::set_parameter(const string& parameter, const string& value)
if (parameter == "active") {
stringstream ss;
ss << value;
- ss >> active;
+ ss >> data.active;
}
else {
stringstream ss;
@@ -691,7 +691,7 @@ const string LinkageSet::get_parameter(const string& parameter) const
{
stringstream ss;
if (parameter == "active") {
- ss << active;
+ ss << data.active;
}
else {
ss << "Parameter '" << parameter <<
@@ -700,3 +700,22 @@ const string LinkageSet::get_parameter(const string& parameter) const
}
return ss.str();
}
+
+LinkageSetData LinkageSetData::filter_type(ServiceLinkType type)
+{
+ LinkageSetData lsd;
+
+ lsd.lsn = lsn;
+ lsd.active = active;
+ lsd.hard = hard;
+ lsd.international = international;
+ lsd.keyservice = keyservice;
+
+ for (const auto& link : id_list) {
+ if (link.type == type) {
+ lsd.id_list.push_back(link);
+ }
+ }
+
+ return lsd;
+}