summaryrefslogtreecommitdiffstats
path: root/src/fig/FIG0.h
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2015-08-15 13:42:23 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2015-08-15 14:00:48 +0200
commitd20b9a0c8f90fbc373dbd5757b5c6a03bbfd8c83 (patch)
treeb32dc3a732377b2d094145d929bf39b44ee4366c /src/fig/FIG0.h
parent55a66f6408042abfd102f92fd0072a000d8e0235 (diff)
downloaddabmux-d20b9a0c8f90fbc373dbd5757b5c6a03bbfd8c83.tar.gz
dabmux-d20b9a0c8f90fbc373dbd5757b5c6a03bbfd8c83.tar.bz2
dabmux-d20b9a0c8f90fbc373dbd5757b5c6a03bbfd8c83.zip
Add FIG0/19
Diffstat (limited to 'src/fig/FIG0.h')
-rw-r--r--src/fig/FIG0.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/fig/FIG0.h b/src/fig/FIG0.h
index 9015b00..9811eaf 100644
--- a/src/fig/FIG0.h
+++ b/src/fig/FIG0.h
@@ -220,15 +220,32 @@ class FIG0_19 : public IFIG
public:
FIG0_19(FIGRuntimeInformation* rti);
virtual FillStatus fill(uint8_t *buf, size_t max_size);
- virtual FIG_rate repetition_rate(void) { return FIG_rate::A; }
+ virtual FIG_rate repetition_rate(void);
virtual const int figtype(void) const { return 0; }
virtual const int figextension(void) const { return 19; }
private:
FIGRuntimeInformation *m_rti;
- bool m_initialised;
- std::vector<std::shared_ptr<DabService> >::iterator service;
+
+ void update_state(void);
+
+ /* When a new announcement gets active, it is moved into the list
+ * of new announcements, and gets transmitted at a faster rate for
+ * two seconds.
+ * Same for recently disabled announcements.
+ */
+
+ /* Map of cluster to frame count */
+ std::map<
+ std::shared_ptr<AnnouncementCluster>,int> m_new_announcements;
+
+ std::set<
+ std::shared_ptr<AnnouncementCluster> > m_repeated_announcements;
+
+ /* Map of cluster to frame count */
+ std::map<
+ std::shared_ptr<AnnouncementCluster>,int> m_disabled_announcements;
};
} // namespace FIC