X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/02da1f586ef7945fef385e6d4743ef53441bc2fa..d7d291938c45893e28715fb12ae5b83d334084e9:/lib/service/servicefs.cpp diff --git a/lib/service/servicefs.cpp b/lib/service/servicefs.cpp index 91ae44e3..5a945679 100644 --- a/lib/service/servicefs.cpp +++ b/lib/service/servicefs.cpp @@ -11,15 +11,32 @@ #include #include + +class eStaticServiceFSInformation: public iStaticServiceInformation +{ + DECLARE_REF; +public: + RESULT getName(const eServiceReference &ref, std::string &name); +}; + +DEFINE_REF(eStaticServiceFSInformation); + +RESULT eStaticServiceFSInformation::getName(const eServiceReference &ref, std::string &name) +{ + name = ref.path; +} + // eServiceFactoryFS -eServiceFactoryFS::eServiceFactoryFS(): ref(0) +eServiceFactoryFS::eServiceFactoryFS() { ePtr sc; eServiceCenter::getInstance(sc); if (sc) sc->addServiceFactory(eServiceFactoryFS::id, this); + + m_service_information = new eStaticServiceFSInformation(); } eServiceFactoryFS::~eServiceFactoryFS() @@ -52,11 +69,17 @@ RESULT eServiceFactoryFS::list(const eServiceReference &ref, ePtr &ptr) +{ + ptr = m_service_information; + return 0; +} + // eServiceFS DEFINE_REF(eServiceFS); -eServiceFS::eServiceFS(const char *path): ref(0), path(path) +eServiceFS::eServiceFS(const char *path): path(path) { } @@ -74,7 +97,7 @@ RESULT eServiceFS::getContent(std::list &list) if (!(strcmp(e->d_name, ".") && strcmp(e->d_name, ".."))) continue; - eString filename; + std::string filename; filename = path; filename += e->d_name;