X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdvb%2Fidvb.h;h=d94bf5fd798774e64796f783027a7b571915aa21;hp=add9ba8526829569ca8bc077381a5bc0ff5a1f70;hb=32e4324b9b5e615a84885b9132505e4706ededfe;hpb=699d41f217b6d8e91dce499964f8c1a69f5602ed diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index add9ba8..d94bf5f 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;