summaryrefslogtreecommitdiffstats
path: root/src/fig/FIGCarousel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/fig/FIGCarousel.cpp')
-rw-r--r--src/fig/FIGCarousel.cpp100
1 files changed, 4 insertions, 96 deletions
diff --git a/src/fig/FIGCarousel.cpp b/src/fig/FIGCarousel.cpp
index 235cf66..2634a32 100644
--- a/src/fig/FIGCarousel.cpp
+++ b/src/fig/FIGCarousel.cpp
@@ -47,7 +47,8 @@ FIGCarousel::FIGCarousel(boost::shared_ptr<dabEnsemble> ensemble) :
m_fig0_0(&m_rti),
m_fig0_1(&m_rti),
m_fig0_2(&m_rti),
- m_fig0_3(&m_rti)
+ m_fig0_3(&m_rti),
+ m_fig0_17(&m_rti)
{
m_rti.ensemble = ensemble;
m_rti.currentFrame = 0;
@@ -57,12 +58,14 @@ FIGCarousel::FIGCarousel(boost::shared_ptr<dabEnsemble> ensemble) :
m_figs_available[std::make_pair(0, 1)] = &m_fig0_1;
m_figs_available[std::make_pair(0, 2)] = &m_fig0_2;
m_figs_available[std::make_pair(0, 3)] = &m_fig0_3;
+ m_figs_available[std::make_pair(0, 17)] = &m_fig0_17;
const int fib0 = 0;
allocate_fig_to_fib(0, 0, fib0);
allocate_fig_to_fib(0, 1, fib0);
allocate_fig_to_fib(0, 2, fib0);
allocate_fig_to_fib(0, 3, fib0);
+ allocate_fig_to_fib(0, 17, fib0);
}
void FIGCarousel::set_currentFrame(unsigned long currentFrame)
@@ -152,98 +155,3 @@ void FIGCarousel::fib0(int framephase) {
}
}
-#if 0
-void fib0 {
- switch (insertFIG) {
-
- case 0: case 4: case 8: case 12:
- // FIG type 0/0, Multiplex Configuration Info (MCI),
- // Ensemble information
- // ERASED
- break;
-
- case 1: case 6: case 10: case 13:
- // FIG type 0/1, MIC, Sub-Channel Organization,
- // one instance of the part for each subchannel
- // ERASED
- break;
-
- case 2: case 9: case 11: case 14:
- // FIG type 0/2, MCI, Service Organization, one instance of
- // FIGtype0_2_Service for each subchannel
- // ERASED
- break;
-
- case 3:
- // FIG type 0/2 for Data
- // ERASED
- break;
-
- case 5:
- // ERASED
- break;
-
- case 7:
- fig0 = NULL;
- if (serviceFIG0_17 == ensemble->services.end()) {
- serviceFIG0_17 = ensemble->services.begin();
- }
- for (; serviceFIG0_17 != ensemble->services.end();
- ++serviceFIG0_17) {
-
- if ( (*serviceFIG0_17)->pty == 0 &&
- (*serviceFIG0_17)->language == 0) {
- continue;
- }
-
- if (fig0 == NULL) {
- fig0 = (FIGtype0*)&etiFrame[index];
- fig0->FIGtypeNumber = 0;
- fig0->Length = 1;
- fig0->CN = 0;
- fig0->OE = 0;
- fig0->PD = 0;
- fig0->Extension = 17;
- index += 2;
- figSize += 2;
- }
-
- if ((*serviceFIG0_17)->language == 0) {
- if (figSize + 4 > 30) {
- break;
- }
- }
- else {
- if (figSize + 5 > 30) {
- break;
- }
- }
-
- programme =
- (FIGtype0_17_programme*)&etiFrame[index];
- programme->SId = htons((*serviceFIG0_17)->id);
- programme->SD = 1;
- programme->PS = 0;
- programme->L = (*serviceFIG0_17)->language != 0;
- programme->CC = 0;
- programme->Rfa = 0;
- programme->NFC = 0;
- if ((*serviceFIG0_17)->language == 0) {
- etiFrame[index + 3] = (*serviceFIG0_17)->pty;
- fig0->Length += 4;
- index += 4;
- figSize += 4;
- }
- else {
- etiFrame[index + 3] = (*serviceFIG0_17)->language;
- etiFrame[index + 4] = (*serviceFIG0_17)->pty;
- fig0->Length += 5;
- index += 5;
- figSize += 5;
- }
- }
- break;
- }
-}
-#endif
-