X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/85f2616ef78700cf2639992abaf1011ecaa897bd..4f0779fd3cd5951698d537c721dc17e85f15a681:/lib/service/service.h diff --git a/lib/service/service.h b/lib/service/service.h index 813da24c..6f6ab980 100644 --- a/lib/service/service.h +++ b/lib/service/service.h @@ -7,13 +7,15 @@ class eServiceCenter; +#ifndef SWIG typedef ePtr eServiceCenterPtr; +#endif class eServiceCenter: public iServiceHandler { -DECLARE_REF(eServiceCenter); -private: - std::map handler; + DECLARE_REF(eServiceCenter); + std::map > handler; + std::map > extensions; static eServiceCenter *instance; #ifdef SWIG eServiceCenter(); @@ -23,19 +25,23 @@ public: #ifndef SWIG eServiceCenter(); virtual ~eServiceCenter(); -#endif + + int getServiceTypeForExtension(const char *str); + int getServiceTypeForExtension(const std::string &str); + // iServiceHandler - RESULT play(const eServiceReference &, iPlayableServicePtr &ptr); - RESULT record(const eServiceReference &, iRecordableServicePtr &ptr); - RESULT list(const eServiceReference &, iListableServicePtr &ptr); + RESULT play(const eServiceReference &, ePtr &ptr); + RESULT record(const eServiceReference &, ePtr &ptr); + RESULT list(const eServiceReference &, ePtr &ptr); RESULT info(const eServiceReference &, ePtr &ptr); RESULT offlineOperations(const eServiceReference &, ePtr &ptr); // eServiceCenter - static RESULT getPrivInstance(eServiceCenterPtr &ptr) { ptr = instance; return 0; } - static SWIG_VOID(RESULT) getInstance(iServiceHandlerPtr &SWIG_NAMED_OUTPUT(ptr)) { ptr = instance; return 0; } - RESULT addServiceFactory(int id, iServiceHandler *hnd); + static RESULT getPrivInstance(ePtr &ptr) { ptr = instance; return 0; } + RESULT addServiceFactory(int id, iServiceHandler *hnd, std::list &extensions); RESULT removeServiceFactory(int id); +#endif + static SWIG_VOID(RESULT) getInstance(ePtr &SWIG_NAMED_OUTPUT(ptr)) { ptr = instance; return 0; } }; #endif