X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5..cd038ce28d53719a27e7009365dd74fec19357df:/lib/service/service.cpp diff --git a/lib/service/service.cpp b/lib/service/service.cpp index 99199aa9..c043a583 100644 --- a/lib/service/service.cpp +++ b/lib/service/service.cpp @@ -1,8 +1,10 @@ +#include +#include #include #include #include -eServiceReference::eServiceReference(const eString &string) +eServiceReference::eServiceReference(const std::string &string) { const char *c=string.c_str(); int pathl=-1; @@ -18,13 +20,16 @@ eServiceReference::eServiceReference(const eString &string) path=c+pathl; } -eString eServiceReference::toString() const +std::string eServiceReference::toString() const { - eString ret; - ret+=eString().sprintf("%d:", type); - ret+=eString().sprintf("%d", flags); + std::string ret; + ret += getNum(type); + ret += ":"; + ret += getNum(flags); for (unsigned int i=0; i return i->second->list(ref, ptr); } +RESULT eServiceCenter::info(const eServiceReference &ref, ePtr &ptr) +{ + std::map >::iterator i = handler.find(ref.type); + if (i == handler.end()) + { + ptr = 0; + return -1; + } + return i->second->info(ref, ptr); +} + +RESULT eServiceCenter::offlineOperations(const eServiceReference &ref, ePtr &ptr) +{ + std::map >::iterator i = handler.find(ref.type); + if (i == handler.end()) + { + ptr = 0; + return -1; + } + return i->second->offlineOperations(ref, ptr); +} + RESULT eServiceCenter::addServiceFactory(int id, iServiceHandler *hnd) { handler.insert(std::pair >(id, hnd)); @@ -91,4 +124,45 @@ RESULT eServiceCenter::removeServiceFactory(int id) return 0; } -eAutoInitP0 init_eServiceCenter(eAutoInitNumbers::service, "eServiceCenter"); + /* default handlers */ +RESULT iServiceHandler::info(const eServiceReference &, ePtr &ptr) +{ + ptr = 0; + return -1; +} + +#include + +RESULT iStaticServiceInformation::getEvent(const eServiceReference &ref, ePtr &evt) +{ + evt = 0; + return -1; +} + +int iStaticServiceInformation::getLength(const eServiceReference &ref) +{ + return -1; +} + +bool iStaticServiceInformation::isPlayable(const eServiceReference &ref, const eServiceReference &ignore) +{ + return true; +} + +RESULT iServiceInformation::getEvent(ePtr &evt, int m_nownext) +{ + evt = 0; + return -1; +} + +int iServiceInformation::getInfo(int w) +{ + return -1; +} + +std::string iServiceInformation::getInfoString(int w) +{ + return ""; +} + +eAutoInitPtr init_eServiceCenter(eAutoInitNumbers::service, "eServiceCenter");