X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/7fd4f3d49a6d2f93cae4769cf8678358ebd1abce..cfdc155f46f816c17d098ba0bb2a3bd2037e2f1e:/lib/dvb/demux.h diff --git a/lib/dvb/demux.h b/lib/dvb/demux.h index b2d571ac..19ed1a1e 100644 --- a/lib/dvb/demux.h +++ b/lib/dvb/demux.h @@ -6,20 +6,38 @@ 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 &reader); + RESULT createTSRecorder(ePtr &recorder); + RESULT getMPEGDecoder(ePtr &reader); + RESULT getSTC(pts_t &pts, int num); + RESULT getCADemuxID(uint8_t &id) { id = demux; return 0; } + RESULT flush(); + RESULT connectEvent(const Slot1 &event, ePtr &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; -public: - DECLARE_REF(eDVBDemux); - eDVBDemux(int adapter, int demux); - virtual ~eDVBDemux(); - RESULT createSectionReader(eMainloop *context, ePtr &reader); - RESULT createTSRecorder(ePtr &recorder); - RESULT getMPEGDecoder(ePtr &reader); + friend class eDVBCAService; + Signal1 m_event; + + int openDemux(void); }; class eDVBSectionReader: public iDVBSectionReader, public Object @@ -42,7 +60,7 @@ public: RESULT connectRead(const Slot1 &read, ePtr &conn); }; -class eDVBTSRecorderThread; +class eDVBRecordFileThread; class eDVBTSRecorder: public iDVBTSRecorder, public Object { @@ -55,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(); @@ -67,14 +86,15 @@ private: RESULT startPID(int pid); void stopPID(int pid); - eDVBTSRecorderThread *m_thread; + eDVBRecordFileThread *m_thread; std::map m_pids; Signal1 m_event; ePtr 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