add ability to copy providers or all services from satellites to favourites (this...
[enigma2.git] / lib / service / iservice.h
index d234b6afbf487318719c79b62bdbfc8a2ef2ba15..1f55fe4952ec9c81d5959800f9d3ae099ee0a979 100644 (file)
@@ -2,6 +2,7 @@
 #define __lib_dvb_iservice_h
 
 #include <lib/python/swig.h>
+#include <lib/python/python.h>
 #include <lib/base/object.h>
 #include <string>
 #include <connection.h>
@@ -166,6 +167,8 @@ public:
 
 SWIG_ALLOW_OUTPUT_SIMPLE(eServiceReference);
 
+extern PyObject *New_eServiceReference(const eServiceReference &ref); // defined in enigma_python.i
+
 typedef long long pts_t;
 
        /* the reason we have the servicereference as additional argument is
@@ -365,6 +368,10 @@ class iTimeshiftService: public iObject
 public:
        virtual RESULT startTimeshift()=0;
        virtual RESULT stopTimeshift()=0;
+       
+       virtual int isTimeshiftActive()=0;
+                       /* this essentially seeks to the relative end of the timeshift buffer */
+       virtual RESULT activateTimeshift()=0;
 };
 
 TEMPLATE_TYPEDEF(ePtr<iTimeshiftService>, iTimeshiftServicePtr);
@@ -386,6 +393,11 @@ public:
                        // when iServiceInformation is implemented:
                evUpdatedEventInfo,
                evUpdatedInfo,
+
+                       /* when seek() is implemented: */               
+               evSeekableStatusChanged, /* for example when timeshifting */
+               
+               evEOF
        };
        virtual RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection)=0;
        virtual RESULT start()=0;
@@ -433,6 +445,8 @@ public:
                /* 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;
+               /* set name of list, for bouquets this is the visible bouquet name */
+       virtual RESULT setListName(const std::string &name)=0;
 };
 
 TEMPLATE_TYPEDEF(ePtr<iMutableServiceList>, iMutableServiceListPtr);
@@ -445,8 +459,9 @@ class iListableService: public iObject
 #endif
 public:
                /* legacy interface: get a list */
-       virtual RESULT getContent(std::list<eServiceReference> &list)=0;
-       
+       virtual RESULT getContent(std::list<eServiceReference> &list, bool sorted=false)=0;
+       virtual RESULT getContent(PyObject *list, bool sorted=false)=0;
+
                /* new, shiny interface: streaming. */
        virtual SWIG_VOID(RESULT) getNext(eServiceReference &SWIG_OUTPUT)=0;