add SeekRelative stuff
[enigma2.git] / lib / service / iservice.h
index d0dc1e2b2cb93bdb9bbfb8f1b85422fdcaf0cd8c..15631fdac410f9e9aa9da4795573b4a19966fa52 100644 (file)
@@ -44,6 +44,10 @@ public:
        int data[8];
        std::string path;
 
        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)
        {
        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;
 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;
 };
 
        virtual RESULT getPlayPosition(pts_t &SWIG_OUTPUT)=0;
 };
 
@@ -217,6 +223,7 @@ public:
                evStart,
                evEnd,
                
                evStart,
                evEnd,
                
+               evTuneFailed,
                // when iServiceInformation is implemented:
                evUpdatedEventInfo
        };
                // when iServiceInformation is implemented:
                evUpdatedEventInfo
        };
@@ -233,7 +240,7 @@ TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr);
 class iRecordableService: public iObject
 {
 public:
 class iRecordableService: public iObject
 {
 public:
-       virtual RESULT prepare()=0;
+       virtual RESULT prepare(const char *filename)=0;
        virtual RESULT start()=0;
        virtual RESULT stop()=0;
 };
        virtual RESULT start()=0;
        virtual RESULT stop()=0;
 };
@@ -285,6 +292,8 @@ public:
                // TODO: additional stuff, like a conversion interface?
 };
 
                // TODO: additional stuff, like a conversion interface?
 };
 
+TEMPLATE_TYPEDEF(ePtr<iServiceOfflineOperations>, iServiceOfflineOperationsPtr);
+
 class iServiceHandler: public iObject
 {
 public:
 class iServiceHandler: public iObject
 {
 public: