fix absolute paths to be relative
[enigma2.git] / lib / dvb / demux.h
index 08d9f43de19d1cfad798a894b20e80f9a8dddb27..19ed1a1e468750ba6373bee56ddf2416b758da1f 100644 (file)
@@ -6,30 +6,38 @@
 
 class eDVBDemux: public iDVBDemux
 {
-       int adapter, demux;
-       
-       int m_dvr_busy;
-       friend class eDVBSectionReader;
-       friend class eDVBAudio;
-       friend class eDVBVideo;
-       friend class eDVBPCR;
-       friend class eDVBTSRecorder;
-       friend class eDVBCAService;
-       Signal1<void, int> m_event;
+       DECLARE_REF(eDVBDemux);
 public:
        enum {
                evtFlush
        };
-       DECLARE_REF(eDVBDemux);
        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 getSTC(pts_t &pts, int num);
        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 eDVBTText;
+       friend class eDVBTSRecorder;
+       friend class eDVBCAService;
+       Signal1<void, int> m_event;
+       
+       int openDemux(void);
 };
 
 class eDVBSectionReader: public iDVBSectionReader, public Object
@@ -52,7 +60,7 @@ public:
        RESULT connectRead(const Slot1<void,const __u8*> &read, ePtr<eConnection> &conn);
 };
 
-class eFilePushThread;
+class eDVBRecordFileThread;
 
 class eDVBTSRecorder: public iDVBTSRecorder, public Object
 {
@@ -65,9 +73,10 @@ public:
        RESULT addPID(int pid);
        RESULT removePID(int pid);
        
-       RESULT setFormat(int pid);
+       RESULT setTimingPID(int pid);
        
        RESULT setTargetFD(int fd);
+       RESULT setTargetFilename(const char *filename);
        RESULT setBoundary(off_t max);
        
        RESULT stop();
@@ -77,14 +86,15 @@ private:
        RESULT startPID(int pid);
        void stopPID(int pid);
        
-       eFilePushThread *m_thread;
+       eDVBRecordFileThread *m_thread;
        
        std::map<int,int> m_pids;
        Signal1<void,int> m_event;
        
        ePtr<eDVBDemux> m_demux;
        
-       int m_running, m_format, m_target_fd, m_source_fd;
+       int m_running, m_target_fd, m_source_fd;
+       std::string m_target_filename;
 };
 
 #endif