X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8d0841a3c4d57ec102acc2a8ac09123b7ebdee27..4dfae02c457922170d52822bed2c80bd82152d3f:/lib/service/iservice.h diff --git a/lib/service/iservice.h b/lib/service/iservice.h index 7eeee693..1dd419c1 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -38,7 +38,8 @@ public: flagDirectory=isDirectory|mustDescent|canDescent, shouldSort=8, // should be ASCII-sorted according to service_name. great for directories. 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 + sort1=32, // sort key is 1 instead of 0 + isMarker=64 // Marker }; int flags; // flags will NOT be compared. @@ -144,6 +145,7 @@ public: #endif eServiceReference(const std::string &string); std::string toString() const; + std::string toCompareString() const; bool operator==(const eServiceReference &c) const { if (type != c.type) @@ -205,6 +207,8 @@ typedef long long pts_t; Hide the result only if there is another way to check for failure! */ +TEMPLATE_TYPEDEF(ePtr, eServiceEventPtr); + class iStaticServiceInformation: public iObject { #ifdef SWIG @@ -222,12 +226,13 @@ public: virtual int getInfo(const eServiceReference &ref, int w); virtual std::string getInfoString(const eServiceReference &ref,int w); + + virtual int setInfo(const eServiceReference &ref, int w, int v); + virtual int setInfoString(const eServiceReference &ref, int w, const char *v); }; TEMPLATE_TYPEDEF(ePtr, iStaticServiceInformationPtr); -TEMPLATE_TYPEDEF(ePtr, eServiceEventPtr); - class iServiceInformation: public iObject { #ifdef SWIG @@ -274,13 +279,18 @@ public: sTracknumber, sGenre, sCAIDs, - sVideoType // MPEG2 MPEG4 + sVideoType, // MPEG2 MPEG4 + + sTags, /* space seperated list of tags */ }; enum { resNA = -1, resIsString = -2, resIsPyObject = -3 }; virtual int getInfo(int w); virtual std::string getInfoString(int w); virtual PyObject *getInfoObject(int w); + + virtual int setInfo(int w, int v); + virtual int setInfoString(int w, const char *v); }; TEMPLATE_TYPEDEF(ePtr, iServiceInformationPtr); @@ -345,12 +355,6 @@ TEMPLATE_TYPEDEF(ePtr, iSeekableServicePtr); struct iAudioTrackInfo { -#ifdef SWIG -private: - iAudioTrackInfo(); - ~iAudioTrackInfo(); -public: -#endif #ifndef SWIG std::string m_description; std::string m_language; /* iso639 */ @@ -404,6 +408,18 @@ public: TEMPLATE_TYPEDEF(ePtr, iAudioDelayPtr); +class iRadioText: public iObject +{ +#ifdef SWIG + iRadioText(); + ~iRadioText(); +#endif +public: + virtual std::string getRadioText(int x=0)=0; +}; + +TEMPLATE_TYPEDEF(ePtr, iRadioTextPtr); + class iSubserviceList: public iObject { #ifdef SWIG @@ -460,6 +476,7 @@ public: virtual RESULT enableSubtitles(eWidget *parent, PyObject *entry)=0; virtual RESULT disableSubtitles(eWidget *parent)=0; virtual PyObject *getSubtitleList()=0; + virtual PyObject *getCachedSubtitle()=0; }; TEMPLATE_TYPEDEF(ePtr, iSubtitleOutputPtr); @@ -492,8 +509,12 @@ public: /* only when cueSheet is implemented */ evCuesheetChanged, + + evUpdatedRadioText }; +#ifndef SWIG virtual RESULT connectEvent(const Slot2 &event, ePtr &connection)=0; +#endif virtual RESULT start()=0; virtual RESULT stop()=0; /* might have to be changed... */ @@ -509,6 +530,7 @@ public: virtual SWIG_VOID(RESULT) cueSheet(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) subtitle(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) audioDelay(ePtr &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) radioText(ePtr &SWIG_OUTPUT)=0; }; TEMPLATE_TYPEDEF(ePtr, iPlayableServicePtr); @@ -520,6 +542,31 @@ class iRecordableService: public iObject ~iRecordableService(); #endif public: + enum + { + evStart, + evStop, + evTunedIn, + evTuneFailed, + evRecordRunning, + evRecordStopped, + evNewProgramInfo, + evRecordFailed +// evDiskFull + }; + enum + { + NoError=0, + errOpenRecordFile=-1, + errNoDemuxAvailable=-2, + errNoTsRecorderAvailable=-3, + errDiskFull=-4, + errTuneFailed=-255 + }; +#ifndef SWIG + virtual RESULT connectEvent(const Slot2 &event, ePtr &connection)=0; +#endif + virtual RESULT getError(int &)=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; @@ -528,6 +575,8 @@ public: TEMPLATE_TYPEDEF(ePtr, iRecordableServicePtr); +PyObject *PyFrom(ePtr&); // implemented in servicedvbrecord.cpp + // TEMPLATE_TYPEDEF(std::list, eServiceReferenceList); class iMutableServiceList: public iObject @@ -540,7 +589,7 @@ public: /* flush changes */ virtual RESULT flushChanges()=0; /* adds a service to a list */ - virtual RESULT addService(eServiceReference &ref)=0; + virtual RESULT addService(eServiceReference &ref, eServiceReference before=eServiceReference())=0; /* removes a service from a list */ virtual RESULT removeService(eServiceReference &ref)=0; /* moves a service in a list, only if list suppports a specific sort method. */