add getRefCount to evaluate if a demux is in use
[enigma2.git] / lib / dvb / demux.h
index 06c74c9a701520ad15116450356563e15ce08b3b..b14dfd263f09311ecf5d3b50f2e5728cbb13f4a4 100644 (file)
@@ -19,11 +19,13 @@ public:
        
        RESULT createSectionReader(eMainloop *context, ePtr<iDVBSectionReader> &reader);
        RESULT createTSRecorder(ePtr<iDVBTSRecorder> &recorder);
-       RESULT getMPEGDecoder(ePtr<iTSMPEGDecoder> &reader);
+       RESULT getMPEGDecoder(ePtr<iTSMPEGDecoder> &reader, int primary);
        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);
+       
+       int getRefCount() { return ref; }
 private:
        int adapter, demux;
        
@@ -60,7 +62,7 @@ public:
        RESULT connectRead(const Slot1<void,const __u8*> &read, ePtr<eConnection> &conn);
 };
 
-class eFilePushThread;
+class eDVBRecordFileThread;
 
 class eDVBTSRecorder: public iDVBTSRecorder, public Object
 {
@@ -73,9 +75,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();
@@ -85,14 +88,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