X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/f15ee3f6cd34e4552f50dcc92a994198ed3b2dfe..c9e02e35c9c420e16921f2bedcaf380477a24849:/lib/service/iservice.h diff --git a/lib/service/iservice.h b/lib/service/iservice.h index e4127fb9..ed1cf3a5 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -7,6 +7,8 @@ #include #include +class eServiceEvent; + class eServiceReference { public: @@ -45,16 +47,31 @@ public: std::string path; std::string getPath() { return path; } + 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 ) std::string name; std::string getName() { return name; } + void setName( const std::string &n ) { name=n; } + eServiceReference() : type(idInvalid), flags(0) { + memset(data, 0, sizeof(data)); } - eServiceReference(int type, int flags) : type(type), flags(flags) { @@ -172,13 +189,17 @@ public: virtual SWIG_VOID(RESULT) getName(const eServiceReference &ref, std::string &SWIG_OUTPUT)=0; // doesn't need to be implemented, should return -1 then. - virtual int getLength(const eServiceReference &ref)=0; + virtual int getLength(const eServiceReference &ref); + 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); -class eServiceEvent; - TEMPLATE_TYPEDEF(ePtr, eServiceEventPtr); class iServiceInformation: public iObject @@ -211,6 +232,9 @@ public: sTSID, sNamespace, sProvider, + + sDescription, + sTimeCreate, // unix time or string }; enum { resNA = -1, resIsString = -2 }; @@ -220,11 +244,28 @@ public: TEMPLATE_TYPEDEF(ePtr, iServiceInformationPtr); +class iFrontendStatusInformation: public iObject +{ +public: + enum { + bitErrorRate, + signalPower, + signalQuality + }; + virtual int getFrontendInfo(int w)=0; +}; + +TEMPLATE_TYPEDEF(ePtr, iFrontendStatusInformationPtr); + class iPauseableService: public iObject { public: virtual RESULT pause()=0; virtual RESULT unpause()=0; + + /* hm. */ + virtual RESULT setSlowMotion(int ratio=0)=0; + virtual RESULT setFastForward(int ratio=0)=0; }; TEMPLATE_TYPEDEF(ePtr, iPauseableServicePtr); @@ -262,6 +303,23 @@ public: TEMPLATE_TYPEDEF(ePtr, iAudioTrackSelectionPtr); +class iSubserviceList: public iObject +{ +public: + virtual int getNumberOfSubservices()=0; + virtual SWIG_VOID(RESULT) getSubservice(eServiceReference &SWIG_OUTPUT, unsigned int n)=0; +}; + +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 { @@ -284,6 +342,9 @@ public: 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; + 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);