X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4cd594ce7621755ce7a81a3f2bd6a31e5323e2a3..d86dfb91c834be43d9bcddd69ddbc7e463825fbd:/lib/service/iservice.h diff --git a/lib/service/iservice.h b/lib/service/iservice.h index 15631fda..b7b34fe2 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -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, 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, iAudioTrackSelectionPtr); + class iPlayableService: public iObject { friend class iServiceHandler; @@ -233,6 +246,7 @@ public: virtual SWIG_VOID(RESULT) seek(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) pause(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) info(ePtr &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) audioTracks(ePtr &SWIG_OUTPUT)=0; }; TEMPLATE_TYPEDEF(ePtr, iPlayableServicePtr); @@ -249,6 +263,22 @@ TEMPLATE_TYPEDEF(ePtr, iRecordableServicePtr); // TEMPLATE_TYPEDEF(std::list, eServiceReferenceList); +class iMutableServiceList: public iObject +{ +public: + /* flush changes */ + virtual RESULT flushChanges()=0; + /* adds a service to a list */ + virtual RESULT addService(eServiceReference &ref)=0; + /* removes a service from a list */ + virtual RESULT removeService(eServiceReference &ref)=0; + /* 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; +}; + +TEMPLATE_TYPEDEF(ePtr, iMutableServiceListPtr); + class iListableService: public iObject { public: @@ -264,6 +294,8 @@ public: (as well as a future "active" extension) won't be possible. */ virtual int compareLessEqual(const eServiceReference &, const eServiceReference &)=0; + + virtual SWIG_VOID(RESULT) startEdit(ePtr &SWIG_OUTPUT)=0; }; TEMPLATE_TYPEDEF(ePtr, iListableServicePtr);