X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b47c326aad25626034d14ffb630628da2f0e8b97..45ff4a40741c0562b9feccec57b6e062f063ab76:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 882e9b15..683a7b71 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -170,6 +170,15 @@ class eDVBService: public iStaticServiceInformation { DECLARE_REF(eDVBService); public: + enum cacheID + { + cVPID, cAPID, cTPID, cPCRPID, cAC3PID, cacheMax + }; + + int getCachePID(cacheID); + void setCachePID(cacheID, int); + bool cacheEmpty() { return m_cache.empty(); } + eDVBService(); std::string m_service_name; std::string m_provider_name; @@ -183,6 +192,7 @@ public: // iStaticServiceInformation RESULT getName(const eServiceReference &ref, std::string &name); + int getLength(const eServiceReference &ref); // for filtering: int checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQuery &query); @@ -435,6 +445,26 @@ public: virtual void ReleaseUse() = 0; }; +typedef unsigned long long pts_t; + +class iDVBPVRChannel: public iDVBChannel +{ +public: + enum + { + state_eof = state_release + 1 /* end-of-file reached. */ + }; + + /* FIXME: there are some very ugly buffer-end and ... related problems */ + /* so this is VERY UGLY. */ + virtual RESULT playFile(const char *file) = 0; + + virtual RESULT getLength(pts_t &pts) = 0; + virtual RESULT getCurrentPosition(pts_t &pos) = 0; + + // seekTo ... +}; + class iDVBSectionReader; class iDVBTSRecorder; class iTSMPEGDecoder; @@ -445,6 +475,7 @@ public: virtual RESULT createSectionReader(eMainloop *context, ePtr &reader)=0; virtual RESULT createTSRecorder(ePtr &recorder)=0; virtual RESULT getMPEGDecoder(ePtr &reader)=0; + virtual RESULT getSTC(pts_t &pts)=0; }; class iTSMPEGDecoder: public iObject