summaryrefslogtreecommitdiffstats
path: root/src/fig/FIG0_6.h
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2016-10-02 15:36:21 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2016-10-02 15:36:21 +0200
commitc97b43fc819e1e0e963183579d1b50f26f8c6f7f (patch)
treeb0e1570b07d83be9b1c34addc74d708dfce0e888 /src/fig/FIG0_6.h
parentc21a6828183cdcc08533a83530156e5758aca534 (diff)
downloaddabmux-c97b43fc819e1e0e963183579d1b50f26f8c6f7f.tar.gz
dabmux-c97b43fc819e1e0e963183579d1b50f26f8c6f7f.tar.bz2
dabmux-c97b43fc819e1e0e963183579d1b50f26f8c6f7f.zip
Regroup linkagesets into subsets of same type
Diffstat (limited to 'src/fig/FIG0_6.h')
-rw-r--r--src/fig/FIG0_6.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/fig/FIG0_6.h b/src/fig/FIG0_6.h
index db55c06..1af396f 100644
--- a/src/fig/FIG0_6.h
+++ b/src/fig/FIG0_6.h
@@ -26,7 +26,7 @@
#pragma once
#include <cstdint>
-#include <list>
+#include <vector>
#include <memory>
#include "fig/FIG0structs.h"
@@ -58,7 +58,20 @@ class FIG0_6 : public IFIG
private:
FIGRuntimeInformation *m_rti;
bool m_initialised;
- std::list<std::shared_ptr<LinkageSet> >::iterator linkageSetFIG0_6;
+
+ /* Update the linkageSubsets */
+ void update(void);
+
+ /* A LinkageSet can contain links of different types
+ * (DAB, FM, DRM, AMSS), but the FIG needs to send
+ * different FIGs for each of those, because the IdLQ flag
+ * is common to a list.
+ *
+ * We reorganise all LinkageSets into subsets that have
+ * the same type.
+ */
+ std::list<LinkageSetData> linkageSubsets;
+ std::list<LinkageSetData>::iterator linkageSetFIG0_6;
};
// FIG0/6 needs a change indicator, which is a short-form FIG (i.e. without the list)
@@ -79,7 +92,7 @@ class FIG0_6_CEI : public IFIG
private:
FIGRuntimeInformation *m_rti;
bool m_initialised;
- std::list<std::shared_ptr<LinkageSet> >::iterator linkageSetFIG0_6;
+ std::vector<std::shared_ptr<LinkageSet> >::iterator linkageSetFIG0_6;
};
}