X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/aa14114f1c17459de0aa31a0268224c4b959e2a8..1dbaf81816d8994a84716bf1f8ca34645206ae22:/lib/service/servicefs.cpp diff --git a/lib/service/servicefs.cpp b/lib/service/servicefs.cpp index 4c1e5bd5..16948854 100644 --- a/lib/service/servicefs.cpp +++ b/lib/service/servicefs.cpp @@ -96,6 +96,11 @@ eServiceFS::~eServiceFS() { } +int lower(char c) +{ + return std::tolower(static_cast(c)); +} + RESULT eServiceFS::getContent(std::list &list, bool sorted) { DIR *d=opendir(path.c_str()); @@ -131,6 +136,7 @@ RESULT eServiceFS::getContent(std::list &list, bool sorted) { size_t e = filename.rfind('.'); std::string extension = (e != std::string::npos) ? filename.substr(e) : ""; + std::transform(extension.begin(), extension.end(), extension.begin(), lower); int type = -1; if (extension == ".ts") @@ -145,7 +151,7 @@ RESULT eServiceFS::getContent(std::list &list, bool sorted) type = 4097; else if (extension == ".wav" || extension == ".wave") type = 4097; - else if (extension == ".m3u" || extension == ".pls" || extension == ".e2") + else if (extension == ".m3u" || extension == ".pls" || extension == ".e2pls") type = 4098; if (type != -1) @@ -171,6 +177,7 @@ RESULT eServiceFS::getContent(std::list &list, bool sorted) // useable format options are // R = Service Reference (as swig object .. this is very slow) // S = Service Reference (as python string object .. same as ref.toString()) +// C = Service Reference (as python string object .. same as ref.toCompareString()) // N = Service Name (as python string object) // when exactly one return value per service is selected in the format string, // then each value is directly a list entry @@ -210,6 +217,9 @@ PyObject *eServiceFS::getContent(const char* format, bool sorted) case 'R': // service reference (swig)object tmp = New_eServiceReference(ref); break; + case 'C': // service reference compare string + tmp = PyString_FromString(ref.toCompareString().c_str()); + break; case 'S': // service reference string tmp = PyString_FromString(ref.toString().c_str()); break;