X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8d8294b4b354436adde202604fffb55c181d686c..0ecfa70938499a3386c282577e28625d04d4626b:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index add9ba85..f5d3d2ee 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -180,7 +180,8 @@ public: bool cacheEmpty() { return m_cache.empty(); } eDVBService(); - std::string m_service_name; + /* m_service_name_sort is uppercase, with special chars removed, to increase sort performance. */ + std::string m_service_name, m_service_name_sort; std::string m_provider_name; int m_flags; @@ -194,7 +195,7 @@ public: RESULT getName(const eServiceReference &ref, std::string &name); int getLength(const eServiceReference &ref); - // for filtering: + /* for filtering: */ int checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQuery &query); }; @@ -208,6 +209,7 @@ class iDVBChannelListQuery: public iObject { public: virtual RESULT getNextResult(eServiceReferenceDVB &ref)=0; + virtual int compareLessEqual(const eServiceReferenceDVB &a, const eServiceReferenceDVB &b)=0; }; class eDVBChannelQuery: public iObject @@ -233,6 +235,9 @@ public: int m_int; eDVBChannelID m_channelid; + /* sort is only valid in root, and must be from the enum above. */ + int m_sort; + static RESULT compile(ePtr &res, std::string query); ePtr m_p1, m_p2; @@ -429,13 +434,15 @@ public: }; 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; @@ -461,6 +468,7 @@ public: virtual RESULT getLength(pts_t &pts) = 0; virtual RESULT getCurrentPosition(pts_t &pos) = 0; + virtual RESULT seekTo(pts_t &pts) = 0; // seekTo ... }; @@ -477,6 +485,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