add some comments
[enigma2.git] / lib / service / servicedvb.h
index f47c3906012ee31262703fb2e5c73159d9694ea5..ac856ed7510d1e5ce4dbcdc766ae6ae389671453 100644 (file)
@@ -25,7 +25,9 @@ private:
        RESULT lookupService(ePtr<eDVBService> &ptr, const eServiceReference &ref);
 };
 
-class eDVBServiceList: public iListableService
+class eBouquet;
+
+class eDVBServiceList: public iListableService, public iMutableServiceList
 {
 DECLARE_REF(eDVBServiceList);
 public:
@@ -33,12 +35,21 @@ public:
        RESULT getContent(std::list<eServiceReference> &list);
        RESULT getNext(eServiceReference &ptr);
        int compareLessEqual(const eServiceReference &a, const eServiceReference &b);
+       
+       RESULT startEdit(ePtr<iMutableServiceList> &);
+       RESULT flushChanges();
+       RESULT addService(eServiceReference &ref);
+       RESULT removeService(eServiceReference &ref);
+       RESULT moveService(eServiceReference &ref, int pos);
 private:
        RESULT startQuery();
        eServiceReference m_parent;
        friend class eServiceFactoryDVB;
        eDVBServiceList(const eServiceReference &parent);
        ePtr<iDVBChannelListQuery> m_query;
+       
+               /* for editing purposes. WARNING: lifetime issue! */
+       eBouquet *m_bouquet;
 };
 
 class eDVBServicePlay: public iPlayableService, public iPauseableService, public iSeekableService, public Object, public iServiceInformation
@@ -62,6 +73,7 @@ public:
                // iSeekableService
        RESULT getLength(pts_t &len);
        RESULT seekTo(pts_t to);
+       RESULT seekRelative(int direction, pts_t to);
        RESULT getPlayPosition(pts_t &pos);
 
                // iServiceInformation