X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8ed781e0e3cd85b08ca32cac3641e384070b736c..34e9c6040287cab5b5af08d5d6634f2802109436:/lib/service/servicefs.cpp diff --git a/lib/service/servicefs.cpp b/lib/service/servicefs.cpp index 1f65ae17..728bb460 100644 --- a/lib/service/servicefs.cpp +++ b/lib/service/servicefs.cpp @@ -142,17 +142,17 @@ RESULT eServiceFS::getContent(std::list &list, bool sorted) if (extension == ".ts") type = eServiceFactoryDVB::id; else if (extension == ".mp3") - type = 4097; + type = 0x1001; else if (extension == ".ogg") - type = 4097; + type = 0x1001; else if (extension == ".mpg") - type = 4097; + type = 0x1001; else if (extension == ".vob") - type = 4097; + type = 0x1001; else if (extension == ".wav" || extension == ".wave") - type = 4097; + type = 0x1001; else if (extension == ".m3u" || extension == ".pls" || extension == ".e2pls") - type = 4098; + type = 4098; // ?? this id is not defined in any service handler, just in python code. if (type != -1) { @@ -177,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 @@ -185,7 +186,7 @@ RESULT eServiceFS::getContent(std::list &list, bool sorted) // unknown format string chars are returned as python None values ! PyObject *eServiceFS::getContent(const char* format, bool sorted) { - PyObject *ret=0; + ePyObject ret; std::list tmplist; int retcount=1; @@ -207,14 +208,17 @@ PyObject *eServiceFS::getContent(const char* format, bool sorted) for (int cnt=0; cnt < services; ++cnt) { eServiceReference &ref=*it++; - PyObject *tuple = retcount > 1 ? PyTuple_New(retcount) : 0; + ePyObject tuple = retcount > 1 ? PyTuple_New(retcount) : ePyObject(); for (int i=0; i < retcount; ++i) { - PyObject *tmp=0; + ePyObject tmp; switch(format[i]) { case 'R': // service reference (swig)object - tmp = New_eServiceReference(ref); + 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()); @@ -254,7 +258,7 @@ PyObject *eServiceFS::getContent(const char* format, bool sorted) PyList_SET_ITEM(ret, cnt, tuple); } } - return ret ? ret : PyList_New(0); + return ret ? (PyObject*)ret : (PyObject*)PyList_New(0); } RESULT eServiceFS::getNext(eServiceReference &ptr)