X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d7d291938c45893e28715fb12ae5b83d334084e9..defa1a765f48ec880b36b14a247b89649553c2ec:/lib/service/listboxservice.h diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h index 9d0cb721..36bb5bb4 100644 --- a/lib/service/listboxservice.h +++ b/lib/service/listboxservice.h @@ -4,16 +4,29 @@ #include #include +#include class eServiceCenter; class eListboxServiceContent: public virtual iListboxContent { - DECLARE_REF; + DECLARE_REF(eListboxServiceContent); public: eListboxServiceContent(); void setRoot(const eServiceReference &ref); void getCurrent(eServiceReference &ref); + + /* support for marked services */ + void initMarked(); + void addMarked(const eServiceReference &ref); + void removeMarked(const eServiceReference &ref); + int isMarked(const eServiceReference &ref); + + /* this is NOT thread safe! */ + void markedQueryStart(); + int markedQueryNext(eServiceReference &ref); + int lookupService(const eServiceReference &ref); + protected: void cursorHome(); void cursorEnd(); @@ -44,6 +57,11 @@ private: ePtr m_service_center; eServiceReference m_root; + + /* support for marked services */ + std::set m_marked; + + std::set::const_iterator m_marked_iterator; }; #endif