summaryrefslogtreecommitdiffstats
path: root/src/fig/FIGCarousel.h
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2015-07-18 22:20:11 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2015-07-18 22:20:11 +0200
commit43aebb09438ff589a7be141a5af0aec2c27eaa95 (patch)
treea01cf8fc060407dc665b456aa0bb5514b0d3a5aa /src/fig/FIGCarousel.h
parentba8a05f29b819eb99d9cc9e69f8da7003e2c79c1 (diff)
downloaddabmux-43aebb09438ff589a7be141a5af0aec2c27eaa95.tar.gz
dabmux-43aebb09438ff589a7be141a5af0aec2c27eaa95.tar.bz2
dabmux-43aebb09438ff589a7be141a5af0aec2c27eaa95.zip
Add FIG0/2, fib0 scheduler
Diffstat (limited to 'src/fig/FIGCarousel.h')
-rw-r--r--src/fig/FIGCarousel.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/fig/FIGCarousel.h b/src/fig/FIGCarousel.h
index cbb6868..42b8d9c 100644
--- a/src/fig/FIGCarousel.h
+++ b/src/fig/FIGCarousel.h
@@ -30,20 +30,39 @@
#define __FIG_CAROUSEL_H_
#include "fig/FIG.h"
+#include "fig/FIG0.h"
#include <list>
+#include <map>
#include <boost/shared_ptr.hpp>
#include "MuxElements.h"
+struct FIGCarouselElement {
+ IFIG* fig;
+ int deadline;
+
+ void reduce_deadline(void);
+};
+
class FIGCarousel {
public:
FIGCarousel(boost::shared_ptr<dabEnsemble> ensemble);
void set_currentFrame(unsigned long currentFrame);
+ void allocate_fig_to_fib(int figtype, int extension, int fib);
+
+ void fib0(int framephase);
+
private:
FIGRuntimeInformation m_rti;
- std::list<IFIG> m_figs;
+ std::map<std::pair<int, int>, IFIG*> m_figs_available;
+
+ // Each FIB contains a list of carousel elements
+ std::map<int, std::list<FIGCarouselElement> > m_fibs;
+ FIG0_0 m_fig0_0;
+ FIG0_1 m_fig0_1;
+ FIG0_2 m_fig0_2;
};
#endif // __FIG_CAROUSEL_H_