update python
[enigma2.git] / lib / service / iservice.h
index 253f8c3b31fab8ea9cfe66d03e29b562d2e587f0..766d850eb748d3607b7d10c71e00ad00b7ff4ef6 100644 (file)
@@ -2,10 +2,18 @@
 #define __lib_dvb_iservice_h
 
 #include <lib/base/object.h>
-#include <lib/base/estring.h>
+#include <string>
 #include <connection.h>
 #include <list>
 
+#ifdef SWIG
+#define TEMPLATE_TYPEDEF(x, y) \
+%template(y) x; \
+typedef x y
+#else
+#define TEMPLATE_TYPEDEF(x, y) typedef x y
+#endif
+
 class eServiceReference
 {
 public:
@@ -41,7 +49,7 @@ public:
        inline int getSortKey() const { return (flags & hasSortKey) ? data[3] : ((flags & sort1) ? 1 : 0); }
 
        int data[8];
-       eString path;
+       std::string path;
 
        eServiceReference()
                : type(idInvalid), flags(0)
@@ -93,13 +101,13 @@ public:
                data[3]=data3;
                data[4]=data4;
        }
-       eServiceReference(int type, int flags, const eString &path)
+       eServiceReference(int type, int flags, const std::string &path)
                : type(type), flags(flags), path(path)
        {
                memset(data, 0, sizeof(data));
        }
-       eServiceReference(const eString &string);
-       eString toString() const;
+       eServiceReference(const std::string &string);
+       std::string toString() const;
        bool operator==(const eServiceReference &c) const
        {
                if (type != c.type)
@@ -137,9 +145,11 @@ public:
 class iServiceInformation: public iObject
 {
 public:
-       virtual RESULT getName(eString &name)=0;
+       virtual RESULT getName(std::string &name)=0;
 };
 
+typedef ePtr<iServiceInformation> iServiceInformationPtr;
+
 class iPauseableService: public iObject
 {
 public:
@@ -147,6 +157,8 @@ public:
        virtual RESULT unpause()=0;
 };
 
+typedef ePtr<iPauseableService> iPauseableServicePtr;
+
 class iPlayableService: public iObject
 {
        friend class iServiceHandler;
@@ -163,6 +175,8 @@ public:
        virtual RESULT getIServiceInformation(ePtr<iServiceInformation> &ptr)=0;
 };
 
+TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr);
+
 class iRecordableService: public iObject
 {
 public:
@@ -170,12 +184,19 @@ public:
        virtual RESULT stop()=0;
 };
 
+typedef ePtr<iRecordableService> iRecordableServicePtr;
+
+// TEMPLATE_TYPEDEF(std::list<eServiceReference>, eServiceReferenceList);
+typedef std::list<eServiceReference> eServiceReferenceList;
+
 class iListableService: public iObject
 {
 public:
        virtual RESULT getContent(std::list<eServiceReference> &list)=0;
 };
 
+TEMPLATE_TYPEDEF(ePtr<iListableService>, iListableServicePtr);
+
 class iServiceHandler: public iObject
 {
 public:
@@ -184,4 +205,6 @@ public:
        virtual RESULT list(const eServiceReference &, ePtr<iListableService> &ptr)=0;
 };
 
+typedef ePtr<iServiceHandler> iServiceHandlerPtr;
+
 #endif