1 #ifndef __lib_dvb_dvbmid_h
2 #define __lib_dvb_dvbmid_h
4 #include <lib/dvb/idvb.h>
5 #include <lib/dvb/dvb.h>
6 #include <lib/dvb/isection.h>
7 #include <lib/dvb/esection.h>
8 #include <lib/dvb_si/pmt.h>
9 #include <lib/dvb_si/pat.h>
11 class eDVBServicePMTHandler: public Object
13 eServiceReferenceDVB m_reference;
14 // ePtr<eDVBService> m_service;
16 int m_last_channel_state;
18 eAUTable<eTable<ProgramMapTable> > m_PMT;
19 eAUTable<eTable<ProgramAssociationTable> > m_PAT;
21 ePtr<iDVBChannel> m_channel;
22 ePtr<eDVBResourceManager> m_resourceManager;
23 ePtr<iDVBDemux> m_demux;
25 void channelStateChanged(iDVBChannel *);
26 ePtr<eConnection> m_channelStateChanged_connection;
28 void PMTready(int error);
29 void PATready(int error);
31 eDVBServicePMTHandler();
35 eventNoResources, // a requested resource couldn't be allocated
36 eventNoPAT, // no pat could be received (timeout)
37 eventNoPATEntry, // no pat entry for the corresponding SID could be found
38 eventNoPMT, // no pmt could be received (timeout)
39 eventNewProgramInfo, // we just received a PMT
40 eventTuned // a channel was sucessfully (re-)tuned in, you may start additional filters now
43 Signal1<void,int> serviceEvent;
53 enum { atMPEG, atAC3, atDTS };
54 int type; // mpeg2, ac3, dts, ...
60 std::vector<videoStream> videoStreams;
61 std::vector<audioStream> audioStreams;
66 int getProgramInfo(struct program &program);
67 int getDemux(ePtr<iDVBDemux> &demux);
69 int tune(eServiceReferenceDVB &ref);