diff options
| author | shunt010 <sam@maxxwave.co.uk> | 2025-12-31 13:19:28 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-31 13:19:28 +0000 |
| commit | f8eaf51f61cdae65e90675920e427d23b8da7027 (patch) | |
| tree | e70c92214ac05cf0a2001e0481e289343c094d65 /src/MuxElements.cpp | |
| parent | f8b5402727b7e94aecbfb663a601577f97bae5b9 (diff) | |
| parent | a5f80a99e0dad51c45e8511347f27d816ae92e20 (diff) | |
| download | dabmux-f8eaf51f61cdae65e90675920e427d23b8da7027.tar.gz dabmux-f8eaf51f61cdae65e90675920e427d23b8da7027.tar.bz2 dabmux-f8eaf51f61cdae65e90675920e427d23b8da7027.zip | |
Merge pull request #1 from Opendigitalradio/master
Bring up to date
Diffstat (limited to 'src/MuxElements.cpp')
| -rw-r--r-- | src/MuxElements.cpp | 71 |
1 files changed, 67 insertions, 4 deletions
diff --git a/src/MuxElements.cpp b/src/MuxElements.cpp index 71ff270..1f02a6d 100644 --- a/src/MuxElements.cpp +++ b/src/MuxElements.cpp @@ -3,7 +3,7 @@ 2011, 2012 Her Majesty the Queen in Right of Canada (Communications Research Center Canada) - Copyright (C) 2020 + Copyright (C) 2024 Matthias P. Braendli, matthias.braendli@mpb.li http://www.opendigitalradio.org @@ -86,7 +86,7 @@ bool AnnouncementCluster::is_active() if (*m_deferred_start_time <= now) { m_active = true; - m_deferred_start_time = boost::none; + m_deferred_start_time.reset(); } } @@ -96,7 +96,7 @@ bool AnnouncementCluster::is_active() if (*m_deferred_stop_time <= now) { m_active = false; - m_deferred_stop_time = boost::none; + m_deferred_stop_time.reset(); } } @@ -180,6 +180,34 @@ const string AnnouncementCluster::get_parameter(const string& parameter) const return ss.str(); } +const json::map_t AnnouncementCluster::get_all_values() const +{ + json::map_t map; + + lock_guard<mutex> lock(m_active_mutex); + map["active"].v = m_active; + + using namespace std::chrono; + + if (m_deferred_start_time) { + const auto diff = *m_deferred_start_time - steady_clock::now(); + map["start_in"].v = duration_cast<milliseconds>(diff).count(); + } + else { + map["start_in"].v = nullopt; + } + + if (m_deferred_stop_time) { + const auto diff = *m_deferred_stop_time - steady_clock::now(); + map["stop_in"].v = duration_cast<milliseconds>(diff).count(); + } + else { + map["stop_in"].v = nullopt; + } + + return map; +} + int DabLabel::setLabel(const std::string& label) { @@ -512,6 +540,16 @@ const string DabComponent::get_parameter(const string& parameter) const } +const json::map_t DabComponent::get_all_values() const +{ + json::map_t map; + // It's cleaner to have it separate in JSON, but we + // need the comma separated variant for setting + map["label"].v = label.long_label(); + map["shortlabel"].v = label.short_label(); + return map; +} + subchannel_type_t DabService::getType( const std::shared_ptr<dabEnsemble> ensemble) const { @@ -638,6 +676,16 @@ const string DabService::get_parameter(const string& parameter) const return ss.str(); } +const json::map_t DabService::get_all_values() const +{ + json::map_t map; + map["label"].v = label.long_label(); + map["shortlabel"].v = label.short_label(); + map["pty"].v = (int)pty_settings.pty; + map["ptysd"].v = (pty_settings.dynamic_no_static ? "dynamic" : "static"); + return map; +} + void dabEnsemble::set_parameter(const string& parameter, const string& value) { if (parameter == "localtimeoffset") { @@ -687,7 +735,22 @@ const string dabEnsemble::get_parameter(const string& parameter) const return ss.str(); } -bool dabEnsemble::validate_linkage_sets() +const json::map_t dabEnsemble::get_all_values() const +{ + json::map_t map; + map["localtimeoffset_auto"].v = lto_auto; + map["localtimeoffset"].v = lto; + return map; +} + +bool dabEnsemble::validate_linkage_sets() const +{ + return validate_linkage_sets(services, linkagesets); +} + +bool dabEnsemble::validate_linkage_sets( + const vec_sp_service& services, + std::vector<std::shared_ptr<LinkageSet> > linkagesets) { for (const auto& ls : linkagesets) { const std::string keyserviceuid = ls->keyservice; |
