X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/bcfb71b423699d8f7e1d1e7bb5dc24ad4413a4ae..335cf67701ac976f0ddf7bda12d1180fd137a988:/lib/service/iservice.h diff --git a/lib/service/iservice.h b/lib/service/iservice.h index 53abbf1a..9b962156 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -51,6 +51,13 @@ public: std::string getPath() { return path; } void setPath( const std::string &n ) { path=n; } + unsigned int getUnsignedData(unsigned int num) const + { + if ( num < sizeof(data)/sizeof(int) ) + return data[num]; + return 0; + } + int getData(unsigned int num) const { if ( num < sizeof(data)/sizeof(int) ) @@ -58,6 +65,12 @@ public: return 0; } + void setUnsignedData(unsigned int num, unsigned int val) + { + if ( num < sizeof(data)/sizeof(int) ) + data[num] = val; + } + void setData(unsigned int num, int val) { if ( num < sizeof(data)/sizeof(int) ) @@ -261,6 +274,7 @@ public: sTracknumber, sGenre, sCAIDs, + sVideoType // MPEG2 MPEG4 }; enum { resNA = -1, resIsString = -2, resIsPyObject = -3 }; @@ -271,25 +285,26 @@ public: TEMPLATE_TYPEDEF(ePtr, iServiceInformationPtr); -class iFrontendStatusInformation: public iObject +class iFrontendInformation: public iObject { #ifdef SWIG - iFrontendStatusInformation(); - ~iFrontendStatusInformation(); + iFrontendInformation(); + ~iFrontendInformation(); #endif public: enum { bitErrorRate, signalPower, signalQuality, - LockState, - SyncState + lockState, + syncState, + frontendNumber }; virtual int getFrontendInfo(int w)=0; virtual PyObject *getFrontendData(bool original=false)=0; }; -TEMPLATE_TYPEDEF(ePtr, iFrontendStatusInformationPtr); +TEMPLATE_TYPEDEF(ePtr, iFrontendInformationPtr); class iPauseableService: public iObject { @@ -360,6 +375,20 @@ public: TEMPLATE_TYPEDEF(ePtr, iAudioTrackSelectionPtr); +class iAudioChannelSelection: public iObject +{ +#ifdef SWIG + iAudioChannelSelection(); + ~iAudioChannelSelection(); +#endif +public: + enum { LEFT, STEREO, RIGHT }; + virtual int getCurrentChannel()=0; + virtual RESULT selectChannel(int i)=0; +}; + +TEMPLATE_TYPEDEF(ePtr, iAudioChannelSelectionPtr); + class iSubserviceList: public iObject { #ifdef SWIG @@ -407,6 +436,19 @@ public: TEMPLATE_TYPEDEF(ePtr, iCueSheetPtr); +class eWidget; +class PyList; + +class iSubtitleOutput: public iObject +{ +public: + virtual RESULT enableSubtitles(eWidget *parent, int index)=0; + virtual RESULT disableSubtitles(eWidget *parent)=0; + virtual SWIG_VOID(RESULT) getSubtitleList(PyList *list)=0; +}; + +TEMPLATE_TYPEDEF(ePtr, iSubtitleOutputPtr); + class iPlayableService: public iObject { #ifdef SWIG @@ -445,10 +487,12 @@ 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) audioChannel(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) frontendInfo(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) timeshift(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) cueSheet(ePtr &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) subtitle(ePtr &SWIG_OUTPUT)=0; }; TEMPLATE_TYPEDEF(ePtr, iPlayableServicePtr); @@ -463,6 +507,7 @@ public: virtual RESULT prepare(const char *filename, time_t begTime=-1, time_t endTime=-1, int eit_event_id=-1)=0; virtual RESULT start()=0; virtual RESULT stop()=0; + virtual SWIG_VOID(RESULT) frontendInfo(ePtr &SWIG_OUTPUT)=0; }; TEMPLATE_TYPEDEF(ePtr, iRecordableServicePtr); @@ -500,7 +545,7 @@ class iListableService: public iObject public: /* legacy interface: get a list */ virtual RESULT getContent(std::list &list, bool sorted=false)=0; - virtual RESULT getContent(PyObject *list, bool sorted=false)=0; + virtual PyObject *getContent(const char* format, bool sorted=false)=0; /* new, shiny interface: streaming. */ virtual SWIG_VOID(RESULT) getNext(eServiceReference &SWIG_OUTPUT)=0;