X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ed40f6f85c9c07c3c1224ae20601082c0309a631..cf34bb57372b60d8e66cf5c21e9f73b8d0bc23b8:/lib/service/service.h diff --git a/lib/service/service.h b/lib/service/service.h index 77173c53..6f6ab980 100644 --- a/lib/service/service.h +++ b/lib/service/service.h @@ -13,9 +13,9 @@ typedef ePtr eServiceCenterPtr; class eServiceCenter: public iServiceHandler { -DECLARE_REF(eServiceCenter); -private: + DECLARE_REF(eServiceCenter); std::map > handler; + std::map > extensions; static eServiceCenter *instance; #ifdef SWIG eServiceCenter(); @@ -26,6 +26,9 @@ public: eServiceCenter(); virtual ~eServiceCenter(); + int getServiceTypeForExtension(const char *str); + int getServiceTypeForExtension(const std::string &str); + // iServiceHandler RESULT play(const eServiceReference &, ePtr &ptr); RESULT record(const eServiceReference &, ePtr &ptr); @@ -35,7 +38,7 @@ public: // eServiceCenter static RESULT getPrivInstance(ePtr &ptr) { ptr = instance; return 0; } - RESULT addServiceFactory(int id, iServiceHandler *hnd); + 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; }