X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fservice%2Fservice.cpp;fp=lib%2Fservice%2Fservice.cpp;h=a044c66a0ec3480edcad4dd174c7b57120ed30ef;hp=f409423635ab1526e0426cd949d4df7cbd0627e4;hb=7606810b356e9b3fbe1fbf7c7ca6da2e15e32a0e;hpb=bf32c388285065d3e9024cc8181c737e621efadf;ds=sidebyside diff --git a/lib/service/service.cpp b/lib/service/service.cpp index f409423..a044c66 100644 --- a/lib/service/service.cpp +++ b/lib/service/service.cpp @@ -6,6 +6,51 @@ #include #include +static std::string encode(const std::string s) +{ + int len = s.size(); + std::string res; + int i; + for (i=0; i= len) + break; + char s[3] = {s[i - 1], s[i], 0}; + unsigned char r = strtoul(s, 0, 0x10); + if (r) + res += r; + } + } + return res; +} + + eServiceReference::eServiceReference(const std::string &string) { const char *c=string.c_str(); @@ -35,6 +80,9 @@ eServiceReference::eServiceReference(const std::string &string) else path=pathstr; } + + path = decode(path); + name = decode(name); } std::string eServiceReference::toString() const @@ -45,9 +93,9 @@ std::string eServiceReference::toString() const ret += getNum(flags); for (unsigned int i=0; i