aboutsummaryrefslogtreecommitdiffstats
path: root/src/DabMultiplexer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/DabMultiplexer.cpp')
-rw-r--r--src/DabMultiplexer.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/DabMultiplexer.cpp b/src/DabMultiplexer.cpp
index d107b9a..45d9a66 100644
--- a/src/DabMultiplexer.cpp
+++ b/src/DabMultiplexer.cpp
@@ -504,8 +504,21 @@ void DabMultiplexer::reload_linking()
etiLog.level(warn) << "Failed to validate new frequency info: " << e.what();
}
- if (linkage_sets_valid and freq_info_valid) {
- ensemble->set_linking_config(linkagesets, frequency_information);
+ bool services_oe_valid = false;
+ std::vector<ServiceOtherEnsembleInfo> services_other_ensemble;
+
+ try {
+ const auto pt_other_services = new_conf.pt.get_child_optional("other-services");
+ parse_other_service_linking(pt_other_services, services_other_ensemble);
+ services_oe_valid = true;
+ }
+ catch (const std::runtime_error& e)
+ {
+ etiLog.level(warn) << "Failed to validate new services in other onsembles: " << e.what();
+ }
+
+ if (linkage_sets_valid and freq_info_valid and services_oe_valid) {
+ ensemble->set_linking_config(linkagesets, frequency_information, services_other_ensemble);
etiLog.level(info) << "Loaded new linkage sets and frequency info.";
}
}