X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fservice%2Fservice.cpp;h=8ac7ebd41495c8e800fe0575fd73c68faa075de7;hp=a490c3d7ba099d7177328435532d240c5d0ca81f;hb=d9b91542e07a2296b69141433d863fe8028b148e;hpb=4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad diff --git a/lib/service/service.cpp b/lib/service/service.cpp index a490c3d..8ac7ebd 100644 --- a/lib/service/service.cpp +++ b/lib/service/service.cpp @@ -1,19 +1,24 @@ #include #include +#include #include #include #include +#include eServiceReference::eServiceReference(const std::string &string) { const char *c=string.c_str(); int pathl=0; - if ( sscanf(c, "%d:%d:%x:%x:%x:%x:%x:%x:%x:%x:%n", &type, &flags, &data[0], &data[1], &data[2], &data[3], &data[4], &data[5], &data[6], &data[7], &pathl) < 8 ) + if (!string.length()) + type = idInvalid; + else if ( sscanf(c, "%d:%d:%x:%x:%x:%x:%x:%x:%x:%x:%n", &type, &flags, &data[0], &data[1], &data[2], &data[3], &data[4], &data[5], &data[6], &data[7], &pathl) < 8 ) { memset( data, 0, sizeof(data) ); eDebug("find old format eServiceReference string"); - sscanf(c, "%d:%d:%x:%x:%x:%x:%n", &type, &flags, &data[0], &data[1], &data[2], &data[3], &pathl); + if ( sscanf(c, "%d:%d:%x:%x:%x:%x:%n", &type, &flags, &data[0], &data[1], &data[2], &data[3], &pathl) < 2 ) + type = idInvalid; } if (pathl) @@ -46,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 init_eServiceCenter(eAutoInitNumbers::service, "eServiceCenter");