From: Andreas Monzner Date: Tue, 10 Oct 2006 12:18:45 +0000 (+0000) Subject: add function to get a comparable service reference string (useable to X-Git-Tag: 2.6.0~2957 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/c7239788f111d2a6a8ca3bb8b95b72579095bad4?ds=inline add function to get a comparable service reference string (useable to compare servicesrefs in python) --- diff --git a/lib/service/iservice.h b/lib/service/iservice.h index eff03436..31c1c99d 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -145,6 +145,7 @@ public: #endif eServiceReference(const std::string &string); std::string toString() const; + std::string toCompareString() const; bool operator==(const eServiceReference &c) const { if (type != c.type) diff --git a/lib/service/service.cpp b/lib/service/service.cpp index 11f88b1f..aa1ee4d8 100644 --- a/lib/service/service.cpp +++ b/lib/service/service.cpp @@ -51,6 +51,16 @@ std::string eServiceReference::toString() const return ret; } +std::string eServiceReference::toCompareString() const +{ + std::string ret; + ret += getNum(type); + ret += ":0"; + for (unsigned int i=0; i &list, bool sort // 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 @@ -435,6 +436,9 @@ PyObject *eDVBServiceList::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; diff --git a/lib/service/servicefs.cpp b/lib/service/servicefs.cpp index 1f65ae17..16948854 100644 --- a/lib/service/servicefs.cpp +++ b/lib/service/servicefs.cpp @@ -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 @@ -216,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;