aboutsummaryrefslogtreecommitdiff
path: root/lib/service/service.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-01-08 14:55:16 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-01-08 14:55:16 +0000
commit4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad (patch)
treef7ee69a1e042d2d766309b0a7fb2ea3d96df1c7c /lib/service/service.cpp
parente441555fa867c277985766fcf84af8fdde72d52d (diff)
downloadenigma2-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.cpp22
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;
}