diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-01-08 14:55:16 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-01-08 14:55:16 +0000 |
| commit | 4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad (patch) | |
| tree | f7ee69a1e042d2d766309b0a7fb2ea3d96df1c7c /lib/service/service.cpp | |
| parent | e441555fa867c277985766fcf84af8fdde72d52d (diff) | |
| download | enigma2-4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad.tar.gz enigma2-4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad.zip | |
add subservice selection to timer (when linkage services are avail for the selected event)
better layout in timerlist (more space for service name and event description)
Diffstat (limited to 'lib/service/service.cpp')
| -rw-r--r-- | lib/service/service.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/lib/service/service.cpp b/lib/service/service.cpp index 150a0cd3..a490c3d7 100644 --- a/lib/service/service.cpp +++ b/lib/service/service.cpp @@ -7,8 +7,8 @@ eServiceReference::eServiceReference(const std::string &string) { const char *c=string.c_str(); - int pathl=-1; - + 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 ) { memset( data, 0, sizeof(data) ); @@ -17,7 +17,19 @@ eServiceReference::eServiceReference(const std::string &string) } if (pathl) - path=c+pathl; + { + const char *pathstr = c+pathl; + const char *namestr = strchr(pathstr, ':'); + if (namestr) + { + if (pathstr != namestr) + path.assign(pathstr, namestr-pathstr); + if (*(namestr+1)) + name=namestr+1; + } + else + path=pathstr; + } } std::string eServiceReference::toString() const @@ -27,10 +39,10 @@ std::string eServiceReference::toString() const ret += ":"; ret += getNum(flags); for (unsigned int i=0; i<sizeof(data)/sizeof(*data); ++i) - { ret+=":"+ getNum(data[i], 0x10); - } ret+=":"+path; + if (name.length()) + ret+=":"+name; return ret; } |
