aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/db.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2007-09-16 09:45:09 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2007-09-16 09:45:09 +0000
commitd4fc3e1b8c34dea520fbce11b8dc30ca1245a482 (patch)
treec634456e212d5ab0061ce693db94eb2e01f1d7c2 /lib/dvb/db.cpp
parent3d2705377deedf4bce431e9398aea7ef6d59d7b6 (diff)
downloadenigma2-d4fc3e1b8c34dea520fbce11b8dc30ca1245a482.tar.gz
enigma2-d4fc3e1b8c34dea520fbce11b8dc30ca1245a482.zip
show "Current Transponder" entry in ChannelSelection -> Satellites
CVS: ----------------------------------------------------------------------
Diffstat (limited to 'lib/dvb/db.cpp')
-rw-r--r--lib/dvb/db.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp
index bb29bcca..f3d44821 100644
--- a/lib/dvb/db.cpp
+++ b/lib/dvb/db.cpp
@@ -1377,9 +1377,18 @@ RESULT parseExpression(ePtr<eDVBChannelQuery> &res, std::list<std::string>::cons
}
res->m_string = val;
- res->m_int = atoi(val.c_str());
-// res->m_channelid = eDVBChannelID(val);
-
+
+ if (res->m_type == eDVBChannelQuery::tChannelID)
+ {
+ int ns, tsid, onid;
+ if (sscanf(val.c_str(), "%08x%04x%04x", &ns, &tsid, &onid) == 3)
+ res->m_channelid = eDVBChannelID(eDVBNamespace(ns), eTransportStreamID(tsid), eOriginalNetworkID(onid));
+ else
+ eDebug("couldn't parse channelid !! format should be hex NNNNNNNNTTTTOOOO (namespace, tsid, onid)");
+ }
+ else
+ res->m_int = atoi(val.c_str());
+
return 0;
}