X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ff84dc4ee5f57e24a0777930d5482ee4ff53da0e..06fb2bcb4ddf528cbe65d58be41cf8ecf8697e76:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index d353611d..b68c014b 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -19,7 +19,13 @@ struct eBouquet { std::string m_bouquet_name; std::string m_path; - std::list m_services; + typedef std::list list; + list m_services; +// the following four methods are implemented in db.cpp + RESULT flushChanges(); + RESULT addService(const eServiceReference &); + RESULT removeService(const eServiceReference &); + RESULT moveService(const eServiceReference &, unsigned int); }; // bitte KEINE operator int() definieren, sonst bringt das ganze nix! @@ -262,7 +268,7 @@ public: virtual RESULT addService(const eServiceReferenceDVB &service, eDVBService *service)=0; virtual RESULT getService(const eServiceReferenceDVB &reference, ePtr &service)=0; - virtual RESULT getBouquet(const eServiceReference &ref, const eBouquet* &bouquet)=0; + virtual RESULT getBouquet(const eServiceReference &ref, eBouquet* &bouquet)=0; virtual RESULT startQuery(ePtr &query, eDVBChannelQuery *query, const eServiceReference &source)=0; }; @@ -401,7 +407,8 @@ public: stateIdle = 0, stateTuning = 1, stateFailed = 2, - stateLock = 3 + stateLock = 3, + stateLostLock = 4, }; virtual RESULT getState(int &state)=0; enum { @@ -438,6 +445,7 @@ public: { state_idle, /* not yet tuned */ state_tuning, /* currently tuning (first time) */ + state_failed, /* tuning failed. */ state_unavailable, /* currently unavailable, will be back without further interaction */ state_ok, /* ok */ state_release /* channel is being shut down. */ @@ -462,7 +470,8 @@ public: virtual void ReleaseUse() = 0; }; -typedef unsigned long long pts_t; + /* signed, so we can express deltas. */ +typedef long long pts_t; class iDVBPVRChannel: public iDVBChannel { @@ -478,9 +487,8 @@ public: virtual RESULT getLength(pts_t &pts) = 0; virtual RESULT getCurrentPosition(pts_t &pos) = 0; - virtual RESULT seekTo(pts_t &pts) = 0; - - // seekTo ... + virtual RESULT seekTo(int relative, pts_t &pts) = 0; + virtual RESULT seekToPosition(const off_t &pts) = 0; }; class iDVBSectionReader;