X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4bc08995411e21f3564f09e136809be68ddf96a8..95ac56f69ddb6de8e260c8e55aff68d1df0b452c:/lib/service/iservice.h diff --git a/lib/service/iservice.h b/lib/service/iservice.h index 01c61fcc..c58421ed 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -6,14 +6,6 @@ #include #include -#ifdef SWIG -#define TEMPLATE_TYPEDEF(x, y) \ -%template(y) x; \ -typedef x y -#else -#define TEMPLATE_TYPEDEF(x, y) typedef x y -#endif - class eServiceReference { public: @@ -147,13 +139,23 @@ public: large list, provided that no state information is nessesary to deliver the required information. Anyway - ref *must* be the same as the argument to the info() or getIServiceInformation call! */ -class iServiceInformation: public iObject +class iStaticServiceInformation: public iObject { public: virtual RESULT getName(const eServiceReference &ref, std::string &name)=0; }; -typedef ePtr iServiceInformationPtr; +TEMPLATE_TYPEDEF(ePtr, iStaticServiceInformationPtr); + +class eServiceEvent; + +class iServiceInformation: public iStaticServiceInformation +{ +public: + virtual RESULT getEvent(ePtr &evt, int nownext); +}; + +TEMPLATE_TYPEDEF(ePtr, iServiceInformationPtr); class iPauseableService: public iObject { @@ -162,7 +164,7 @@ public: virtual RESULT unpause()=0; }; -typedef ePtr iPauseableServicePtr; +TEMPLATE_TYPEDEF(ePtr, iPauseableServicePtr); class iPlayableService: public iObject { @@ -171,13 +173,16 @@ public: enum { evStart, - evEnd + evEnd, + + // when iServiceInformation is implemented: + evUpdatedEventInfo }; virtual RESULT connectEvent(const Slot2 &event, ePtr &connection)=0; virtual RESULT start()=0; virtual RESULT stop()=0; - virtual RESULT getIPausableService(ePtr &ptr)=0; - virtual RESULT getIServiceInformation(ePtr &ptr)=0; + virtual RESULT pause(ePtr &ptr)=0; + virtual RESULT info(ePtr &ptr)=0; }; TEMPLATE_TYPEDEF(ePtr, iPlayableServicePtr); @@ -189,10 +194,9 @@ public: virtual RESULT stop()=0; }; -typedef ePtr iRecordableServicePtr; +TEMPLATE_TYPEDEF(ePtr, iRecordableServicePtr); // TEMPLATE_TYPEDEF(std::list, eServiceReferenceList); -typedef std::list eServiceReferenceList; class iListableService: public iObject { @@ -208,9 +212,9 @@ public: virtual RESULT play(const eServiceReference &, ePtr &ptr)=0; virtual RESULT record(const eServiceReference &, ePtr &ptr)=0; virtual RESULT list(const eServiceReference &, ePtr &ptr)=0; - virtual RESULT info(const eServiceReference &, ePtr &ptr); + virtual RESULT info(const eServiceReference &, ePtr &ptr); }; -typedef ePtr iServiceHandlerPtr; +TEMPLATE_TYPEDEF(ePtr, iServiceHandlerPtr); #endif