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/idemux.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 eUsePtr<iDVBChannel> m_channel;
22 eUsePtr<iDVBPVRChannel> m_pvr_channel;
23 ePtr<eDVBResourceManager> m_resourceManager;
24 ePtr<iDVBDemux> m_demux;
26 void channelStateChanged(iDVBChannel *);
27 ePtr<eConnection> m_channelStateChanged_connection;
29 void PMTready(int error);
30 void PATready(int error);
32 eDVBServicePMTHandler();
36 eventNoResources, // a requested resource couldn't be allocated
37 eventNoPAT, // no pat could be received (timeout)
38 eventNoPATEntry, // no pat entry for the corresponding SID could be found
39 eventNoPMT, // no pmt could be received (timeout)
40 eventNewProgramInfo, // we just received a PMT
41 eventTuned // a channel was sucessfully (re-)tuned in, you may start additional filters now
44 Signal1<void,int> serviceEvent;
54 enum { atMPEG, atAC3, atDTS };
55 int type; // mpeg2, ac3, dts, ...
61 std::vector<videoStream> videoStreams;
62 std::vector<audioStream> audioStreams;
67 int getProgramInfo(struct program &program);
68 int getDemux(ePtr<iDVBDemux> &demux);
70 int tune(eServiceReferenceDVB &ref);