X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/942f9e8554c495e6782d93524c8e820ec548a8a9..391f7559e77cf98ea3b5a1fba94a8fa6f4307da8:/lib/service/iservice.h diff --git a/lib/service/iservice.h b/lib/service/iservice.h index b7b34fe2..dfd06693 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -3,6 +3,7 @@ #include #include +#include #include #include #include @@ -43,10 +44,12 @@ public: int data[8]; std::string path; + std::string getPath() { return path; } // 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; } eServiceReference() : type(idInvalid), flags(0) @@ -170,7 +173,10 @@ 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); + // returns true when not implemented + virtual bool isPlayable(const eServiceReference &ref, const eServiceReference &ignore); }; TEMPLATE_TYPEDEF(ePtr, iStaticServiceInformationPtr); @@ -184,10 +190,53 @@ class iServiceInformation: public iObject public: virtual SWIG_VOID(RESULT) getName(std::string &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) getEvent(ePtr &SWIG_OUTPUT, int nownext); + + enum { + sIsCrypted, /* is encrypted (no indication if decrypt was possible) */ + sAspect, /* aspect ratio: 0=4:3, 1=16:9, 2=whatever we need */ + sIsMultichannel, /* multichannel *available* (probably not selected) */ + + /* "user serviceable info" - they are not reliable. Don't use them for anything except the service menu! + that's also the reason why they are so globally defined. + + + again - if somebody EVER tries to use this information for anything else than simply displaying it, + i will change this to return a user-readable text like "zero x zero three three" (and change the + exact spelling in every version) to stop that! + */ + sVideoPID, + sAudioPID, + sPCRPID, + sPMTPID, + sTXTPID, + + sSID, + sONID, + sTSID, + sNamespace, + sProvider, + }; + enum { resNA = -1, resIsString = -2 }; + + virtual int getInfo(int w); + virtual std::string getInfoString(int w); }; 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: @@ -212,7 +261,10 @@ TEMPLATE_TYPEDEF(ePtr, iSeekableServicePtr); struct iAudioTrackInfo { std::string m_description; + std::string m_language; /* iso639 */ + std::string getDescription() { return m_description; } + std::string getLanguage() { return m_language; } }; SWIG_ALLOW_OUTPUT_SIMPLE(iAudioTrackInfo); @@ -237,8 +289,9 @@ public: evEnd, evTuneFailed, - // when iServiceInformation is implemented: - evUpdatedEventInfo + // when iServiceInformation is implemented: + evUpdatedEventInfo, + evUpdatedInfo, }; virtual RESULT connectEvent(const Slot2 &event, ePtr &connection)=0; virtual RESULT start()=0; @@ -247,6 +300,7 @@ 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) frontendStatusInfo(ePtr &SWIG_OUTPUT)=0; }; TEMPLATE_TYPEDEF(ePtr, iPlayableServicePtr);