add serviceinfo
[enigma2.git] / lib / service / servicefs.cpp
index 057498d751de0191cb6a79426cbdaece4b55d451..cf3f31f62821e6606adf880d8544564cec7662a6 100644 (file)
@@ -139,6 +139,7 @@ RESULT eServiceFS::getContent(std::list<eServiceReference> &list)
                        }
                }
        }
+       closedir(d);
        return 0;
 }
 
@@ -163,4 +164,16 @@ RESULT eServiceFS::getNext(eServiceReference &ptr)
        return 0;
 }
 
+int eServiceFS::compareLessEqual(const eServiceReference &a, const eServiceReference &b)
+{
+               /* directories first */
+       if ((a.flags & ~b.flags) & eServiceReference::isDirectory)
+               return 1;
+       else if ((~a.flags & b.flags) & eServiceReference::isDirectory)
+               return 0;
+               /* sort by filename */
+       else
+               return a.path < b.path;
+}
+
 eAutoInitPtr<eServiceFactoryFS> init_eServiceFactoryFS(eAutoInitNumbers::service+1, "eServiceFactoryFS");