summaryrefslogtreecommitdiffstats
path: root/src/MuxElements.h
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2018-02-20 19:00:22 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2018-02-20 19:00:22 +0100
commite4396c73c894c4730d4d28b3caefc26ce41cdd4a (patch)
treebde5a32583d181ea026d52ea7f0d020eeb257519 /src/MuxElements.h
parentb09c89b9edda0abe2ab69df5c0d0723db43ad945 (diff)
downloaddabmux-e4396c73c894c4730d4d28b3caefc26ce41cdd4a.tar.gz
dabmux-e4396c73c894c4730d4d28b3caefc26ce41cdd4a.tar.bz2
dabmux-e4396c73c894c4730d4d28b3caefc26ce41cdd4a.zip
Rework other_ensemble to support OE=1 in FIG0/24
Diffstat (limited to 'src/MuxElements.h')
-rw-r--r--src/MuxElements.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/MuxElements.h b/src/MuxElements.h
index b5d1285..6b8b718 100644
--- a/src/MuxElements.h
+++ b/src/MuxElements.h
@@ -196,6 +196,7 @@ class DabComponent;
class DabSubchannel;
class LinkageSet;
struct FrequencyInformation;
+struct ServiceOtherEnsembleInfo;
using vec_sp_component = std::vector<std::shared_ptr<DabComponent> >;
using vec_sp_service = std::vector<std::shared_ptr<DabService> >;
@@ -248,6 +249,7 @@ class dabEnsemble : public RemoteControllable {
std::vector<std::shared_ptr<AnnouncementCluster> > clusters;
std::vector<std::shared_ptr<LinkageSet> > linkagesets;
std::vector<std::shared_ptr<FrequencyInformation> > frequency_information;
+ std::vector<ServiceOtherEnsembleInfo> service_other_ensemble;
};
@@ -420,9 +422,6 @@ class DabService : public RemoteControllable
uint16_t ASu = 0;
std::vector<uint8_t> clusters;
- // Ensembles in which this service is also available, used for FIG0/24
- std::vector<uint16_t> other_ensembles;
-
subchannel_type_t getType(const std::shared_ptr<dabEnsemble> ensemble) const;
bool isProgramme(const std::shared_ptr<dabEnsemble>& ensemble) const;
unsigned char nbComponent(const vec_sp_component& components) const;
@@ -437,6 +436,13 @@ class DabService : public RemoteControllable
virtual const std::string get_parameter(const std::string& parameter) const;
};
+/* Represent an entry for FIG0/24 */
+struct ServiceOtherEnsembleInfo {
+ uint32_t service_id = 0;
+ // Ensembles in which this service is also available
+ std::vector<uint16_t> other_ensembles;
+};
+
enum class ServiceLinkType {DAB, FM, DRM, AMSS};
/* Represent one link inside a linkage set */