add some comments
[enigma2.git] / lib / service / iservice.h
index abbeb1a251782df06d7a7f9e55d527bcd06cccf2..e21fd99f5c83f255558e57ada430e49e063bd416 100644 (file)
@@ -44,6 +44,10 @@ public:
        int data[8];
        std::string path;
 
+// only for override service names in bouquets or to give servicerefs a name which not have a
+// real existing service ( for dvb eServiceDVB )
+       std::string name;
+
        eServiceReference()
                : type(idInvalid), flags(0)
        {
@@ -203,6 +207,8 @@ class iSeekableService: public iObject
 public:
        virtual RESULT getLength(pts_t &SWIG_OUTPUT)=0;
        virtual RESULT seekTo(pts_t to)=0;
+       enum { dirForward = +1, dirBackward = -1 };
+       virtual RESULT seekRelative(int direction, pts_t to)=0;
        virtual RESULT getPlayPosition(pts_t &SWIG_OUTPUT)=0;
 };
 
@@ -217,6 +223,7 @@ public:
                evStart,
                evEnd,
                
+               evTuneFailed,
                // when iServiceInformation is implemented:
                evUpdatedEventInfo
        };
@@ -242,6 +249,22 @@ TEMPLATE_TYPEDEF(ePtr<iRecordableService>, iRecordableServicePtr);
 
 // TEMPLATE_TYPEDEF(std::list<eServiceReference>, eServiceReferenceList);
 
+class iMutableServiceList: public iObject
+{
+public:
+               /* flush changes */
+       virtual RESULT flushChanges()=0;
+               /* adds a service to a list */
+       virtual RESULT addService(eServiceReference &ref)=0;
+               /* removes a service from a list */
+       virtual RESULT removeService(eServiceReference &ref)=0;
+               /* moves a service in a list, only if list suppports a specific sort method. */
+               /* pos is the new, absolute position from 0..size-1 */
+       virtual RESULT moveService(eServiceReference &ref, int pos)=0;
+};
+
+TEMPLATE_TYPEDEF(ePtr<iMutableServiceList>, iMutableServiceListPtr);
+
 class iListableService: public iObject
 {
 public:
@@ -257,6 +280,8 @@ public:
                   (as well as a future "active" extension) won't be possible.
                */
        virtual int compareLessEqual(const eServiceReference &, const eServiceReference &)=0;
+       
+       virtual SWIG_VOID(RESULT) startEdit(ePtr<iMutableServiceList> &SWIG_OUTPUT)=0;
 };
 
 TEMPLATE_TYPEDEF(ePtr<iListableService>, iListableServicePtr);
@@ -285,6 +310,8 @@ public:
                // TODO: additional stuff, like a conversion interface?
 };
 
+TEMPLATE_TYPEDEF(ePtr<iServiceOfflineOperations>, iServiceOfflineOperationsPtr);
+
 class iServiceHandler: public iObject
 {
 public: