X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/49fe6e80f4664c97c95ea73001c3a8b34718b564..9df197b0346cdea53967bf9ed578ff30e2424100:/lib/service/iservice.h diff --git a/lib/service/iservice.h b/lib/service/iservice.h index 2d38d6f6..5ddf0cf8 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) ) @@ -225,7 +238,7 @@ public: virtual SWIG_VOID(RESULT) getName(std::string &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) getEvent(ePtr &SWIG_OUTPUT, int nownext); - enum { + 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) */ @@ -251,12 +264,22 @@ public: sProvider, sDescription, + sServiceref, sTimeCreate, // unix time or string + + sTitle, + sArtist, + sAlbum, + sComment, + sTracknumber, + sGenre, + sCAIDs, }; - enum { resNA = -1, resIsString = -2 }; + enum { resNA = -1, resIsString = -2, resIsPyObject = -3 }; virtual int getInfo(int w); virtual std::string getInfoString(int w); + virtual PyObject *getInfoObject(int w); }; TEMPLATE_TYPEDEF(ePtr, iServiceInformationPtr); @@ -271,9 +294,12 @@ public: enum { bitErrorRate, signalPower, - signalQuality + signalQuality, + LockState, + SyncState }; virtual int getFrontendInfo(int w)=0; + virtual PyObject *getFrontendData(bool original=false)=0; }; TEMPLATE_TYPEDEF(ePtr, iFrontendStatusInformationPtr); @@ -387,13 +413,13 @@ class iCueSheet: public iObject public: /* returns a list of (pts, what)-tuples */ virtual PyObject *getCutList() = 0; - + virtual void setCutList(PyObject *list) = 0; + virtual void setCutListEnable(int enable) = 0; enum { cutIn = 0, cutOut = 1, cutMark = 2 }; - - virtual RESULT addCut(const pts_t &when, int what) = 0; - virtual RESULT removeCut(const pts_t &when, int what) = 0; }; +TEMPLATE_TYPEDEF(ePtr, iCueSheetPtr); + class iPlayableService: public iObject { #ifdef SWIG @@ -419,10 +445,15 @@ public: evEOF, evSOF, /* bounced against start of file (when seeking backwards) */ + + /* only when cueSheet is implemented */ + evCuesheetChanged, }; virtual RESULT connectEvent(const Slot2 &event, ePtr &connection)=0; virtual RESULT start()=0; virtual RESULT stop()=0; + /* might have to be changed... */ + virtual RESULT setTarget(int target)=0; 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; @@ -442,7 +473,7 @@ class iRecordableService: public iObject ~iRecordableService(); #endif public: - virtual RESULT prepare(const char *filename)=0; + 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; }; @@ -482,7 +513,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;