- add iSeekableService, implement it for serviceDvb
[enigma2.git] / lib / service / listboxservice.h
index 45e5ba71293260a7c25e75c00aed90008ce9b463..36bb5bb4fb8da71711893f32737c3d13f2738604 100644 (file)
@@ -4,15 +4,29 @@
 #include <lib/gui/elistbox.h>
 #include <lib/service/iservice.h>
 
+#include <set>
 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<eServiceCenter> m_service_center;
        
        eServiceReference m_root;
+       
+               /* support for marked services */
+       std::set<eServiceReference> m_marked;
+       
+       std::set<eServiceReference>::const_iterator m_marked_iterator;
 };
 
 #endif