X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/a6014454bb8627882386ced03f75628304078637..d0ffa458c4d703df7c2d7dceb8f101bb6c047ff8:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 7dbad780..955688b9 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -357,9 +358,10 @@ public: virtual RESULT setSecSequence(const eSecCommandList &list)=0; enum { - bitErrorRate, signalPower, signalQuality + bitErrorRate, signalPower, signalQuality, Locked, Synced }; virtual int readFrontendData(int type)=0; + virtual PyObject *readTransponderData(bool original)=0; virtual RESULT getData(int num, int &data)=0; virtual RESULT setData(int num, int val)=0; @@ -371,7 +373,7 @@ public: class iDVBSatelliteEquipmentControl: public iObject { public: - virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat, int frontend_id)=0; + virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, const eDVBFrontendParametersSatellite &sat, int frontend_id)=0; virtual int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *fe, int frontend_id)=0; virtual void setRotorMoving(bool)=0; }; @@ -391,6 +393,7 @@ public: state_failed, /* tuning failed. */ state_unavailable, /* currently unavailable, will be back without further interaction */ state_ok, /* ok */ + state_last_instance, /* just one reference to this channel is left */ state_release /* channel is being shut down. */ }; @@ -413,6 +416,7 @@ public: /* direct frontend access for raw channels and/or status inquiries. */ virtual RESULT getFrontend(ePtr &frontend)=0; + virtual RESULT getCurrentFrontendParameters(ePtr &)=0; /* use count handling */ virtual void AddUse() = 0; @@ -424,6 +428,7 @@ public: typedef long long pts_t; class iFilePushScatterGather; +class iTSMPEGDecoder; /* note that a cue sheet describes the logical positions. thus everything is specified in pts and not file positions */ @@ -440,9 +445,13 @@ public: void clear(); void addSourceSpan(const pts_t &begin, const pts_t &end); + void commitSpans(); void setSkipmode(const pts_t &ratio); /* 90000 is 1:1 */ - void setDecodingDemux(iDVBDemux *demux); + void setDecodingDemux(iDVBDemux *demux, iTSMPEGDecoder *decoder); + + /* frontend and backend */ + eSingleLock m_lock; /* backend */ enum { evtSeek, evtSkipmode, evtSpanChanged }; @@ -453,6 +462,7 @@ public: pts_t m_skipmode_ratio; Signal1 m_event; ePtr m_decoding_demux; + ePtr m_decoder; }; class iDVBPVRChannel: public iDVBChannel @@ -544,6 +554,8 @@ public: virtual RESULT setZoom(int what)=0; virtual RESULT setTrickmode(int what) = 0; + + virtual RESULT getPTS(int what, pts_t &pts) = 0; }; #endif