X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/32e4324b9b5e615a84885b9132505e4706ededfe..1f14a8b7aa70bdc6f155b2ff69e2de7c2bcdccbb:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index d94bf5fd..a23960af 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -15,6 +15,19 @@ #include #include +struct eBouquet +{ + std::string m_bouquet_name; + std::string m_path; + 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! struct eTransportStreamID { @@ -237,6 +250,7 @@ public: /* sort is only valid in root, and must be from the enum above. */ int m_sort; + std::string m_bouquet_name; static RESULT compile(ePtr &res, std::string query); @@ -254,7 +268,9 @@ public: virtual RESULT addService(const eServiceReferenceDVB &service, eDVBService *service)=0; virtual RESULT getService(const eServiceReferenceDVB &reference, ePtr &service)=0; - virtual RESULT startQuery(ePtr &query, eDVBChannelQuery *query)=0; + virtual RESULT getBouquet(const eServiceReference &ref, eBouquet* &bouquet)=0; + + virtual RESULT startQuery(ePtr &query, eDVBChannelQuery *query, const eServiceReference &source)=0; }; class SatelliteDeliverySystemDescriptor; @@ -391,7 +407,8 @@ public: stateIdle = 0, stateTuning = 1, stateFailed = 2, - stateLock = 3 + stateLock = 3, + stateLostLock = 4, }; virtual RESULT getState(int &state)=0; enum { @@ -428,19 +445,22 @@ 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. */ }; virtual RESULT connectStateChange(const Slot1 &stateChange, ePtr &connection)=0; virtual RESULT getState(int &state)=0; + + /* demux capabilities */ enum { - cap_decode, - cap_ci + capDecode = 1, + /* capCI = 2 */ }; virtual RESULT setCIRouting(const eDVBCIRouting &routing)=0; - virtual RESULT getDemux(ePtr &demux)=0; + virtual RESULT getDemux(ePtr &demux, int cap=0)=0; /* direct frontend access for raw channels and/or status inquiries. */ virtual RESULT getFrontend(ePtr &frontend)=0; @@ -466,8 +486,8 @@ public: virtual RESULT getLength(pts_t &pts) = 0; virtual RESULT getCurrentPosition(pts_t &pos) = 0; - - // seekTo ... + virtual RESULT seekTo(pts_t &pts) = 0; + virtual RESULT seekToPosition(int relative, const off_t &pts) = 0; }; class iDVBSectionReader; @@ -482,6 +502,7 @@ public: virtual RESULT getMPEGDecoder(ePtr &reader)=0; virtual RESULT getSTC(pts_t &pts)=0; virtual RESULT getCADemuxID(uint8_t &id)=0; + virtual RESULT flush()=0; }; class iTSMPEGDecoder: public iObject