fix for canAllocateChannel
[enigma2.git] / lib / service / iservice.h
index f84b96134d5e2a3ba2c004fba821a64bf7ca919f..3c3248c41a2ef9a4fc1a2b31ff30a527a6c86279 100644 (file)
@@ -22,7 +22,6 @@ public:
        };
        int type;
 
-       int flags; // flags will NOT be compared.
        enum
        {
                isDirectory=1,          // SHOULD enter  (implies mustDescent)
@@ -40,21 +39,25 @@ public:
                hasSortKey=16,          // has a sort key in data[3]. not having a sort key implies 0.
                sort1=32                                        // sort key is 1 instead of 0
        };
+       int flags; // flags will NOT be compared.
 
        inline int getSortKey() const { return (flags & hasSortKey) ? data[3] : ((flags & sort1) ? 1 : 0); }
 
+#ifndef SWIG
        int data[8];
        std::string path;
+#endif
        std::string getPath() { return path; }
+       void setPath( const std::string &n ) { path=n; }
 
-       int getData(int num) const
+       int getData(unsigned int num) const
        {
                if ( num < sizeof(data)/sizeof(int) )
                        return data[num];
                return 0;
        }
 
-       void setData(int num, int val)
+       void setData(unsigned int num, int val)
        {
                if ( num < sizeof(data)/sizeof(int) )
                        data[num] = val;
@@ -62,9 +65,10 @@ public:
 
 // only for override service names in bouquets or to give servicerefs a name which not have a
 // real existing service ( for dvb eServiceDVB )
+#ifndef SWIG
        std::string name;
+#endif
        std::string getName() { return name; }
-
        void setName( const std::string &n ) { name=n; }
 
        eServiceReference()
@@ -72,6 +76,7 @@ public:
        {
                memset(data, 0, sizeof(data));
        }
+#ifndef SWIG
        eServiceReference(int type, int flags)
                : type(type), flags(flags)
        {
@@ -122,6 +127,7 @@ public:
        {
                memset(data, 0, sizeof(data));
        }
+#endif
        eServiceReference(const std::string &string);
        std::string toString() const;
        bool operator==(const eServiceReference &c) const
@@ -278,15 +284,19 @@ public:
        enum { dirForward = +1, dirBackward = -1 };
        virtual RESULT seekRelative(int direction, pts_t to)=0;
        virtual RESULT getPlayPosition(pts_t &SWIG_OUTPUT)=0;
+               /* if you want to do several seeks in a row, you can enable the trickmode. 
+                  audio will be switched off, sync will be disabled etc. */
+       virtual RESULT setTrickmode(int trick=0)=0;
 };
 
 TEMPLATE_TYPEDEF(ePtr<iSeekableService>, iSeekableServicePtr);
 
 struct iAudioTrackInfo
 {
+#ifndef SWIG
        std::string m_description;
        std::string m_language; /* iso639 */
-       
+#endif
        std::string getDescription() { return m_description; }
        std::string getLanguage() { return m_language; }
 };