use boundFunction from tools
[enigma2.git] / lib / dvb / demux.h
index b2d571ac71f02fe5dcd3051fa4cb3d6ce2a2ae78..d3a369f96607c5afc04087b8716a3c7e0de832d4 100644 (file)
@@ -6,20 +6,37 @@
 
 class eDVBDemux: public iDVBDemux
 {
+       DECLARE_REF(eDVBDemux);
+public:
+       enum {
+               evtFlush
+       };
+       eDVBDemux(int adapter, int demux);
+       virtual ~eDVBDemux();
+       
+       RESULT setSourceFrontend(int fenum);
+       RESULT setSourcePVR(int pvrnum);
+       
+       RESULT createSectionReader(eMainloop *context, ePtr<iDVBSectionReader> &reader);
+       RESULT createTSRecorder(ePtr<iDVBTSRecorder> &recorder);
+       RESULT getMPEGDecoder(ePtr<iTSMPEGDecoder> &reader);
+       RESULT getSTC(pts_t &pts);
+       RESULT getCADemuxID(uint8_t &id) { id = demux; return 0; }
+       RESULT flush();
+       RESULT connectEvent(const Slot1<void,int> &event, ePtr<eConnection> &conn);
+private:
        int adapter, demux;
        
        int m_dvr_busy;
        friend class eDVBSectionReader;
        friend class eDVBAudio;
        friend class eDVBVideo;
+       friend class eDVBPCR;
        friend class eDVBTSRecorder;
-public:
-       DECLARE_REF(eDVBDemux);
-       eDVBDemux(int adapter, int demux);
-       virtual ~eDVBDemux();
-       RESULT createSectionReader(eMainloop *context, ePtr<iDVBSectionReader> &reader);
-       RESULT createTSRecorder(ePtr<iDVBTSRecorder> &recorder);
-       RESULT getMPEGDecoder(ePtr<iTSMPEGDecoder> &reader);
+       friend class eDVBCAService;
+       Signal1<void, int> m_event;
+       
+       int openDemux(void);
 };
 
 class eDVBSectionReader: public iDVBSectionReader, public Object
@@ -42,7 +59,7 @@ public:
        RESULT connectRead(const Slot1<void,const __u8*> &read, ePtr<eConnection> &conn);
 };
 
-class eDVBTSRecorderThread;
+class eFilePushThread;
 
 class eDVBTSRecorder: public iDVBTSRecorder, public Object
 {
@@ -67,7 +84,7 @@ private:
        RESULT startPID(int pid);
        void stopPID(int pid);
        
-       eDVBTSRecorderThread *m_thread;
+       eFilePushThread *m_thread;
        
        std::map<int,int> m_pids;
        Signal1<void,int> m_event;