X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d9ee52e4f0fbe9a1ae00d0e66f9e6f0a07fa319f..e93336d428081eb1646146c546f2fee527cb888c:/lib/service/listboxservice.h diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h index 45e5ba71..36bb5bb4 100644 --- a/lib/service/listboxservice.h +++ b/lib/service/listboxservice.h @@ -4,15 +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(); @@ -43,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