code cleanup/optimization
[enigma2.git] / lib / service / iservice.h
index e21fd99f5c83f255558e57ada430e49e063bd416..b7b34fe211a3df553b6eadf59815990f12fa1bac 100644 (file)
@@ -109,7 +109,7 @@ public:
        {
                if (type != c.type)
                        return 0;
-               return /* (flags == c.flags) && */ (memcmp(data, c.data, sizeof(int)*8)==0) && (path == c.path);
+               return (memcmp(data, c.data, sizeof(int)*8)==0) && (path == c.path);
        }
        bool operator!=(const eServiceReference &c) const
        {
@@ -122,11 +122,6 @@ public:
 
                if (type > c.type)
                        return 0;
-                       
-/*             if (flags < c.flags)
-                       return 1;
-               if (flags > c.flags)
-                       return 0; */
 
                int r=memcmp(data, c.data, sizeof(int)*8);
                if (r)
@@ -146,7 +141,7 @@ public:
 
 SWIG_ALLOW_OUTPUT_SIMPLE(eServiceReference);
 
-typedef unsigned long long pts_t;
+typedef long long pts_t;
 
        /* the reason we have the servicereference as additional argument is
           that we don't have to create one object for every entry in a possibly
@@ -214,6 +209,24 @@ public:
 
 TEMPLATE_TYPEDEF(ePtr<iSeekableService>, iSeekableServicePtr);
 
+struct iAudioTrackInfo
+{
+       std::string m_description;
+       std::string getDescription() { return m_description; }
+};
+
+SWIG_ALLOW_OUTPUT_SIMPLE(iAudioTrackInfo);
+
+class iAudioTrackSelection: public iObject
+{
+public:
+       virtual int getNumberOfTracks()=0;
+       virtual RESULT selectTrack(unsigned int i)=0;
+       virtual SWIG_VOID(RESULT) getTrackInfo(struct iAudioTrackInfo &SWIG_OUTPUT, unsigned int n)=0;
+};
+
+TEMPLATE_TYPEDEF(ePtr<iAudioTrackSelection>, iAudioTrackSelectionPtr);
+
 class iPlayableService: public iObject
 {
        friend class iServiceHandler;
@@ -233,6 +246,7 @@ public:
        virtual SWIG_VOID(RESULT) seek(ePtr<iSeekableService> &SWIG_OUTPUT)=0;
        virtual SWIG_VOID(RESULT) pause(ePtr<iPauseableService> &SWIG_OUTPUT)=0;
        virtual SWIG_VOID(RESULT) info(ePtr<iServiceInformation> &SWIG_OUTPUT)=0;
+       virtual SWIG_VOID(RESULT) audioTracks(ePtr<iAudioTrackSelection> &SWIG_OUTPUT)=0;
 };
 
 TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr);