service: add sort of servicelist including all required layers
[enigma2.git] / lib / service / servicefs.cpp
index 057498d751de0191cb6a79426cbdaece4b55d451..c5846abd653d4428adbc4ccefca52095813f679b 100644 (file)
@@ -163,4 +163,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");