X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c2f28d655c5a33f04bc340504116496c93c47f2b..1a3bd31e5cfcba89f2db03a2b4fa550de1fa2823:/lib/service/iservice.h diff --git a/lib/service/iservice.h b/lib/service/iservice.h index 962e4a95..3c3248c4 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -22,7 +22,6 @@ public: }; int type; - int flags; // flags will NOT be compared. enum { isDirectory=1, // SHOULD enter (implies mustDescent) @@ -40,18 +39,36 @@ 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(unsigned int num) const + { + if ( num < sizeof(data)/sizeof(int) ) + return data[num]; + return 0; + } + + void setData(unsigned int num, int val) + { + if ( num < sizeof(data)/sizeof(int) ) + data[num] = val; + } // 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() @@ -59,6 +76,7 @@ public: { memset(data, 0, sizeof(data)); } +#ifndef SWIG eServiceReference(int type, int flags) : type(type), flags(flags) { @@ -109,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 @@ -180,6 +199,9 @@ public: virtual SWIG_VOID(RESULT) getEvent(const eServiceReference &ref, ePtr &SWIG_OUTPUT, time_t start_time=0); // returns true when not implemented virtual bool isPlayable(const eServiceReference &ref, const eServiceReference &ignore); + + virtual int getInfo(const eServiceReference &ref, int w); + virtual std::string getInfoString(const eServiceReference &ref,int w); }; TEMPLATE_TYPEDEF(ePtr, iStaticServiceInformationPtr); @@ -216,6 +238,9 @@ public: sTSID, sNamespace, sProvider, + + sDescription, + sTimeCreate, // unix time or string }; enum { resNA = -1, resIsString = -2 }; @@ -259,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, 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; } }; @@ -293,6 +322,15 @@ public: TEMPLATE_TYPEDEF(ePtr, iSubserviceListPtr); +class iTimeshiftService: public iObject +{ +public: + virtual RESULT startTimeshift()=0; + virtual RESULT stopTimeshift()=0; +}; + +TEMPLATE_TYPEDEF(ePtr, iTimeshiftServicePtr); + class iPlayableService: public iObject { friend class iServiceHandler; @@ -316,6 +354,7 @@ public: virtual SWIG_VOID(RESULT) audioTracks(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) subServices(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) frontendStatusInfo(ePtr &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) timeshift(ePtr &SWIG_OUTPUT)=0; }; TEMPLATE_TYPEDEF(ePtr, iPlayableServicePtr);