aboutsummaryrefslogtreecommitdiff
path: root/lib/service/service.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-04-14 15:10:50 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-04-14 15:10:50 +0000
commit47367fb1c159557cb3676f67172b9839531c8dc9 (patch)
tree8fcf5ec00c058528ce2fd8113b77d4f2250cd75c /lib/service/service.cpp
parentefc5aca651306518e6f21a6bd7cbfa1928821b60 (diff)
downloadenigma2-47367fb1c159557cb3676f67172b9839531c8dc9.tar.gz
enigma2-47367fb1c159557cb3676f67172b9839531c8dc9.zip
better handling for eServiceFS file extensions
Diffstat (limited to 'lib/service/service.cpp')
-rw-r--r--lib/service/service.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/service/service.cpp b/lib/service/service.cpp
index a044c66a..7721fed7 100644
--- a/lib/service/service.cpp
+++ b/lib/service/service.cpp
@@ -187,18 +187,38 @@ RESULT eServiceCenter::offlineOperations(const eServiceReference &ref, ePtr<iSer
return i->second->offlineOperations(ref, ptr);
}
-RESULT eServiceCenter::addServiceFactory(int id, iServiceHandler *hnd)
+RESULT eServiceCenter::addServiceFactory(int id, iServiceHandler *hnd, std::list<std::string> &extensions)
{
handler.insert(std::pair<int,ePtr<iServiceHandler> >(id, hnd));
+ this->extensions[id]=extensions;
return 0;
}
RESULT eServiceCenter::removeServiceFactory(int id)
{
handler.erase(id);
+ extensions.erase(id);
return 0;
}
+int eServiceCenter::getServiceTypeForExtension(const char *str)
+{
+ for (std::map<int, std::list<std::string> >::iterator sit(extensions.begin()); sit != extensions.end(); ++sit)
+ {
+ for (std::list<std::string>::iterator eit(sit->second.begin()); eit != sit->second.end(); ++eit)
+ {
+ if (*eit == str)
+ return sit->first;
+ }
+ }
+ return -1;
+}
+
+int eServiceCenter::getServiceTypeForExtension(const std::string &str)
+{
+ return getServiceTypeForExtension(str.c_str());
+}
+
/* default handlers */
RESULT iServiceHandler::info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr)
{