diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/service/iservice.h | 1 | ||||
| -rw-r--r-- | lib/service/service.cpp | 10 | ||||
| -rw-r--r-- | lib/service/servicedvb.cpp | 4 | ||||
| -rw-r--r-- | lib/service/servicefs.cpp | 4 |
4 files changed, 19 insertions, 0 deletions
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<sizeof(data)/sizeof(*data); ++i) + ret+=":"+getNum(data[i], 0x10); + ret+=":"+path; + return ret; +} eServiceCenter *eServiceCenter::instance; diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 75b55215..750fd34c 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -396,6 +396,7 @@ RESULT eDVBServiceList::getContent(std::list<eServiceReference> &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<eServiceReference> &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; |
