make file extensions case insensitive in mediaplayer and servicefs
[enigma2.git] / lib / service / servicefs.cpp
index 708825f6a702d2c7b8d1667bd61bf78d60644462..1f65ae1739de0597197133d02047b34fcd10957f 100644 (file)
@@ -96,6 +96,11 @@ eServiceFS::~eServiceFS()
 {
 }
 
+int lower(char c)
+{
+       return std::tolower(static_cast<unsigned char>(c));
+}
+
 RESULT eServiceFS::getContent(std::list<eServiceReference> &list, bool sorted)
 {
        DIR *d=opendir(path.c_str());
@@ -131,6 +136,7 @@ RESULT eServiceFS::getContent(std::list<eServiceReference> &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,6 +151,8 @@ RESULT eServiceFS::getContent(std::list<eServiceReference> &list, bool sorted)
                                type = 4097;
                        else if (extension == ".wav" || extension == ".wave")
                                type = 4097;
+                       else if (extension == ".m3u" || extension == ".pls" || extension == ".e2pls")
+                               type = 4098;
                        
                        if (type != -1)
                        {