openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
specs.h
Go to the documentation of this file.
1 #ifndef __lib_dvb_specs_h
2 #define __lib_dvb_specs_h
3 
4 #include <lib/dvb/idvb.h>
5 #include <lib/dvb/idemux.h>
6 #include <dvbsi++/program_map_section.h>
7 #include <dvbsi++/service_description_section.h>
8 #include <dvbsi++/network_information_section.h>
9 #include <dvbsi++/bouquet_association_section.h>
10 #include <dvbsi++/program_association_section.h>
11 #include <dvbsi++/event_information_section.h>
12 #include <dvbsi++/application_information_section.h>
13 
15 {
17 public:
18  eDVBPMTSpec(int pid, int sid, int timeout = 20000)
19  {
20  m_spec.pid = pid;
21  m_spec.tid = ProgramMapSection::TID;
22  m_spec.tidext = sid;
23  m_spec.timeout = timeout; // ProgramMapSection::TIMEOUT;
27  }
28  operator eDVBTableSpec &()
29  {
30  return m_spec;
31  }
32 };
33 
35 {
37 public:
39  {
40  m_spec.pid = ServiceDescriptionSection::PID;
41  m_spec.tid = ServiceDescriptionSection::TID;
42  m_spec.timeout = 60000; // ServiceDescriptionSection::TIMEOUT;
46  }
47  eDVBSDTSpec(int tsid, bool other=false)
48  {
49  m_spec.pid = ServiceDescriptionSection::PID;
50  m_spec.tid = ServiceDescriptionSection::TID;
51  m_spec.tidext = tsid;
52  m_spec.timeout = 60000; // ServiceDescriptionSection::TIMEOUT;
56  if (other)
57  {
58  // SDT other transport stream have TID 0x46 (current is 0x42)
59  // so we mask out the third bit in table id mask..
61  m_spec.tid_mask = 0xFB;
62  }
63  }
64  operator eDVBTableSpec &()
65  {
66  return m_spec;
67  }
68 };
69 
71 {
73 public:
74  eDVBNITSpec(int networkid = 0)
75  {
76  m_spec.pid = NetworkInformationSection::PID;
77  m_spec.tid = NetworkInformationSection::TID;
78  m_spec.timeout = NetworkInformationSection::TIMEOUT;
82  if (networkid)
83  {
85  m_spec.tid_mask = 0xFE; /* not only 'actual', check 'other' as well (as we're looking for a non-standard network id) */
87  m_spec.tidext = networkid;
88  m_spec.tidext_mask = 0xFFFF;
89  }
90  }
91  operator eDVBTableSpec &()
92  {
93  return m_spec;
94  }
95 };
96 
98 {
100 public:
102  {
103  m_spec.pid = BouquetAssociationSection::PID;
104  m_spec.tid = BouquetAssociationSection::TID;
105  m_spec.timeout = BouquetAssociationSection::TIMEOUT;
109  }
110  operator eDVBTableSpec &()
111  {
112  return m_spec;
113  }
114 };
115 
117 {
119 public:
120  eDVBPATSpec(int timeout=20000)
121  {
122  m_spec.pid = ProgramAssociationSection::PID;
123  m_spec.tid = ProgramAssociationSection::TID;
124  m_spec.timeout = timeout; // ProgramAssociationSection::TIMEOUT;
128  }
129  operator eDVBTableSpec &()
130  {
131  return m_spec;
132  }
133 };
134 
136 {
137  eDVBTableSpec m_spec;
138 public:
139  /* this is for now&next on actual transponder. */
140  eDVBEITSpec(int sid)
141  {
142  m_spec.pid = EventInformationSection::PID;
143  m_spec.tid = EventInformationSection::TID;
144  m_spec.tidext = sid;
145  m_spec.timeout = EventInformationSection::TIMEOUT;
149  }
150  operator eDVBTableSpec &()
151  {
152  return m_spec;
153  }
154 };
155 
157 {
158  eDVBTableSpec m_spec;
159 public:
160  /* this is for now&next on actual transponder. */
162  {
163  m_spec.pid = EventInformationSection::PID;
164  m_spec.tid = TID_EIT_OTHER;
165  m_spec.tidext = sid;
166  m_spec.timeout = EventInformationSection::TIMEOUT;
170  }
171  operator eDVBTableSpec &()
172  {
173  return m_spec;
174  }
175 };
176 
178 {
180 public:
181  eDVBAITSpec(int pid)
182  {
183  m_spec.pid = pid;
184  m_spec.tid = ApplicationInformationSection::TID;
185  m_spec.timeout = ApplicationInformationSection::TIMEOUT;
189  }
190  operator eDVBTableSpec &()
191  {
192  return m_spec;
193  }
194 };
195 
197 {
199 public:
201  {
202  m_spec.pid = pid;
203  m_spec.tid = TID_DSMCC_DL_DATA;
204  m_spec.timeout = 20000;
208  }
209  operator eDVBTableSpec &()
210  {
211  return m_spec;
212  }
213 };
214 
215 #endif
Definition: specs.h:136
eDVBEITSpec(int sid)
Definition: specs.h:140
Definition: specs.h:157
eDVBEITSpecOther(int sid)
Definition: specs.h:161
Definition: specs.h:178
eDVBTableSpec m_spec
Definition: specs.h:179
eDVBAITSpec(int pid)
Definition: specs.h:181
Definition: specs.h:98
eDVBBATSpec()
Definition: specs.h:101
eDVBTableSpec m_spec
Definition: specs.h:99
Definition: specs.h:197
eDVBDSMCCDLDataSpec(int pid)
Definition: specs.h:200
eDVBTableSpec m_spec
Definition: specs.h:198
Definition: specs.h:71
eDVBTableSpec m_spec
Definition: specs.h:72
eDVBNITSpec(int networkid=0)
Definition: specs.h:74
Definition: specs.h:117
eDVBPATSpec(int timeout=20000)
Definition: specs.h:120
eDVBTableSpec m_spec
Definition: specs.h:118
Definition: specs.h:15
eDVBTableSpec m_spec
Definition: specs.h:16
eDVBPMTSpec(int pid, int sid, int timeout=20000)
Definition: specs.h:18
Definition: specs.h:35
eDVBSDTSpec(int tsid, bool other=false)
Definition: specs.h:47
eDVBSDTSpec()
Definition: specs.h:38
eDVBTableSpec m_spec
Definition: specs.h:36
Definition: idvb.h:37
int tid_mask
Definition: idvb.h:38
int flags
Definition: idvb.h:58
int pid
Definition: idvb.h:38
int tid
Definition: idvb.h:38
int tidext
Definition: idvb.h:38
int tidext_mask
Definition: idvb.h:38
int timeout
Definition: idvb.h:40
@ tfHaveTIDExtMask
Definition: idvb.h:56
@ tfHaveTIDExt
Definition: idvb.h:52
@ tfHaveTimeout
Definition: idvb.h:54
@ tfHaveTIDMask
Definition: idvb.h:55
@ tfAnyVersion
Definition: idvb.h:49
@ tfHaveTID
Definition: idvb.h:51
@ tfCheckCRC
Definition: idvb.h:53