trade open flags to openPVR function
[vuplus_dvbapp] / lib / dvb / demux.h
index ee731ef..e73982e 100644 (file)
@@ -15,6 +15,7 @@ public:
        virtual ~eDVBDemux();
        
        RESULT setSourceFrontend(int fenum);
+       int getSource() { return source; }
        RESULT setSourcePVR(int pvrnum);
        
        RESULT createSectionReader(eMainloop *context, ePtr<iDVBSectionReader> &reader);
@@ -25,10 +26,11 @@ public:
        RESULT getCADemuxID(uint8_t &id) { id = demux; return 0; }
        RESULT flush();
        RESULT connectEvent(const Slot1<void,int> &event, ePtr<eConnection> &conn);
-       
+       int openDVR(int flags);
+
        int getRefCount() { return ref; }
 private:
-       int adapter, demux;
+       int adapter, demux, source;
        
        int m_dvr_busy;
        friend class eDVBSectionReader;
@@ -47,18 +49,17 @@ private:
 class eDVBSectionReader: public iDVBSectionReader, public Object
 {
        DECLARE_REF(eDVBSectionReader);
-private:
        int fd;
        Signal1<void, const __u8*> read;
        ePtr<eDVBDemux> demux;
        int active;
        int checkcrc;
        void data(int);
-       eSocketNotifier *notifier;
+       ePtr<eSocketNotifier> notifier;
 public:
-       
        eDVBSectionReader(eDVBDemux *demux, eMainloop *context, RESULT &res);
        virtual ~eDVBSectionReader();
+       RESULT setBufferSize(int size);
        RESULT start(const eDVBSectionFilterMask &mask);
        RESULT stop();
        RESULT connectRead(const Slot1<void,const __u8*> &read, ePtr<eConnection> &conn);
@@ -67,16 +68,16 @@ public:
 class eDVBPESReader: public iDVBPESReader, public Object
 {
        DECLARE_REF(eDVBPESReader);
-private:
        int m_fd;
        Signal2<void, const __u8*, int> m_read;
        ePtr<eDVBDemux> m_demux;
        int m_active;
        void data(int);
-       eSocketNotifier *m_notifier;
+       ePtr<eSocketNotifier> m_notifier;
 public:
        eDVBPESReader(eDVBDemux *demux, eMainloop *context, RESULT &res);
        virtual ~eDVBPESReader();
+       RESULT setBufferSize(int size);
        RESULT start(int pid);
        RESULT stop();
        RESULT connectRead(const Slot2<void,const __u8*, int> &read, ePtr<eConnection> &conn);
@@ -91,24 +92,28 @@ public:
        eDVBTSRecorder(eDVBDemux *demux);
        ~eDVBTSRecorder();
 
+       RESULT setBufferSize(int size);
        RESULT start();
        RESULT addPID(int pid);
        RESULT removePID(int pid);
        
-       RESULT setTimingPID(int pid);
+       RESULT setTimingPID(int pid, int type);
        
        RESULT setTargetFD(int fd);
        RESULT setTargetFilename(const char *filename);
        RESULT setBoundary(off_t max);
        
        RESULT stop();
-       
+
+       RESULT getCurrentPCR(pts_t &pcr);
+
        RESULT connectEvent(const Slot1<void,int> &event, ePtr<eConnection> &conn);
 private:
        RESULT startPID(int pid);
        void stopPID(int pid);
        
        eDVBRecordFileThread *m_thread;
+       void filepushEvent(int event);
        
        std::map<int,int> m_pids;
        Signal1<void,int> m_event;