#ifndef __dvb_demux_h #define __dvb_demux_h #include #include class eDVBDemux: public virtual iDVBDemux { int adapter, demux; friend class eDVBSectionReader; friend class eDVBAudio; friend class eDVBVideo; public: DECLARE_REF eDVBDemux(int adapter, int demux); virtual ~eDVBDemux(); RESULT createSectionReader(eMainloop *context, ePtr &reader); RESULT getMPEGDecoder(ePtr &reader); }; class eDVBSectionReader: public virtual iDVBSectionReader, public Object { DECLARE_REF private: int fd; Signal1 read; ePtr demux; int active; int checkcrc; void data(int); eSocketNotifier *notifier; public: eDVBSectionReader(eDVBDemux *demux, eMainloop *context, RESULT &res); virtual ~eDVBSectionReader(); RESULT start(const eDVBSectionFilterMask &mask); RESULT stop(); RESULT connectRead(const Slot1 &read, ePtr &conn); }; #endif