diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-09-16 09:45:09 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-09-16 09:45:09 +0000 |
| commit | d4fc3e1b8c34dea520fbce11b8dc30ca1245a482 (patch) | |
| tree | c634456e212d5ab0061ce693db94eb2e01f1d7c2 | |
| parent | 3d2705377deedf4bce431e9398aea7ef6d59d7b6 (diff) | |
| download | enigma2-d4fc3e1b8c34dea520fbce11b8dc30ca1245a482.tar.gz enigma2-d4fc3e1b8c34dea520fbce11b8dc30ca1245a482.zip | |
show "Current Transponder" entry in ChannelSelection -> Satellites
CVS: ----------------------------------------------------------------------
| -rw-r--r-- | lib/dvb/db.cpp | 15 | ||||
| -rw-r--r-- | lib/python/Screens/ChannelSelection.py | 11 |
2 files changed, 23 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; } diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index 3f3c4de4..62949ed1 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -890,6 +890,17 @@ class ChannelSelectionBase(Screen): service_name = ("%d.%d" + h) % (orbpos / 10, orbpos % 10) service.setName("%s - %s" % (service_name, service_type)) self.servicelist.addService(service) + cur_ref = self.session.nav.getCurrentlyPlayingServiceReference() + if cur_ref: + pos = self.service_types.rfind(':') + refstr = '%s (channelID == %08x%04x%04x) && %s ORDER BY name' %(self.service_types[:pos+1], + cur_ref.getUnsignedData(4), # NAMESPACE + cur_ref.getUnsignedData(2), # TSID + cur_ref.getUnsignedData(3), # ONID + self.service_types[pos+1:]) + ref = eServiceReference(refstr) + ref.setName(_("Current Transponder")) + self.servicelist.addService(ref) self.servicelist.finishFill() if prev is not None: self.setCurrentSelection(prev) |
