#ifndef __lib_dvb_dvbmid_h #define __lib_dvb_dvbmid_h #include #include #include #include #include class eDVBServicePMTHandler: public Object { eServiceReferenceDVB m_reference; // ePtr m_service; int m_last_channel_state; eAUTable > m_PMT; eAUTable > m_PAT; ePtr m_channel; ePtr m_resourceManager; ePtr m_demux; void channelStateChanged(iDVBChannel *); ePtr m_channelStateChanged_connection; void PMTready(int error); void PATready(int error); public: eDVBServicePMTHandler(); enum { eventNoResources, // a requested resource couldn't be allocated eventNoPAT, // no pat could be received (timeout) eventNoPATEntry, // no pat entry for the corresponding SID could be found eventNoPMT, // no pmt could be received (timeout) eventNewProgramInfo // we just received a PMT }; Signal1 serviceEvent; struct videoStream { int pid; }; struct audioStream { int pid; enum { atMPEG, atAC3, atDTS }; int type; // mpeg2, ac3, dts, ... // language code, ... }; struct program { std::vector videoStreams; std::vector audioStreams; // ca info int pcrPid; }; int getProgramInfo(struct program &program); int getDemux(ePtr &demux); int tune(eServiceReferenceDVB &ref); }; #endif