X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1d7e5720b3e8653604323b981e37af1f6aa61709..17647e30993cc20d8f94f2de4a0bc78ce6b593cb:/lib/service/iservice.h diff --git a/lib/service/iservice.h b/lib/service/iservice.h index 4379fbb8..61695a91 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -134,6 +134,8 @@ public: } }; +typedef unsigned long long pts_t; + /* the reason we have the servicereference as additional argument is that we don't have to create one object for every entry in a possibly large list, provided that no state information is nessesary to deliver @@ -143,15 +145,24 @@ class iStaticServiceInformation: public iObject { public: virtual RESULT getName(const eServiceReference &ref, std::string &name)=0; + + // doesn't need to be implemented, should return -1 then. + virtual int getLength(const eServiceReference &ref)=0; + + // FOR SWIG + std::string getName(const eServiceReference &ref) { std::string temp; getName(ref, temp); return temp; } }; TEMPLATE_TYPEDEF(ePtr, iStaticServiceInformationPtr); class eServiceEvent; -class iServiceInformation: public iStaticServiceInformation +class iServiceInformation: public iObject { public: + virtual RESULT getName(std::string &name)=0; + // FOR SWIG + std::string getName() { std::string temp; getName(temp); return temp; } virtual RESULT getEvent(ePtr &evt, int nownext); }; @@ -202,7 +213,11 @@ TEMPLATE_TYPEDEF(ePtr, iRecordableServicePtr); class iListableService: public iObject { public: + /* legacy interface: get a list */ virtual RESULT getContent(std::list &list)=0; + + /* new, shiny interface: streaming. */ + virtual RESULT getNext(eServiceReference &ptr)=0; }; TEMPLATE_TYPEDEF(ePtr, iListableServicePtr);