small code cleanup, fix memleaks
[enigma2.git] / lib / service / service.h
index 77173c53a60a48b3c4610962da19fdaa8a90ef8a..6f6ab98088a815189838b21edc5693650a6bdbed 100644 (file)
@@ -13,9 +13,9 @@ typedef ePtr<eServiceCenter> eServiceCenterPtr;
 
 class eServiceCenter: public iServiceHandler
 {
-DECLARE_REF(eServiceCenter);
-private:
+       DECLARE_REF(eServiceCenter);
        std::map<int,ePtr<iServiceHandler> > handler;
+       std::map<int,std::list<std::string> > 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<iPlayableService> &ptr);
        RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr);
@@ -35,7 +38,7 @@ public:
        
                // eServiceCenter
        static RESULT getPrivInstance(ePtr<eServiceCenter> &ptr) { ptr = instance; return 0; }
-       RESULT addServiceFactory(int id, iServiceHandler *hnd);
+       RESULT addServiceFactory(int id, iServiceHandler *hnd, std::list<std::string> &extensions);
        RESULT removeServiceFactory(int id);
 #endif
        static SWIG_VOID(RESULT) getInstance(ePtr<iServiceHandler> &SWIG_NAMED_OUTPUT(ptr)) { ptr = instance; return 0; }