summaryrefslogtreecommitdiffstats
path: root/src/fig/FIG0_6.h
diff options
context:
space:
mode:
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;
};
}