small radiomode fix
[enigma2.git] / lib / python / Screens / ChannelSelection.py
index 3f3c4de4e71a9be3872ba911ebcbd608388ecfb7..cec2e702022a0d00adc1ff61ad72be99a8fb844a 100644 (file)
@@ -9,7 +9,7 @@ from enigma import eServiceReference, eEPGCache, eServiceCenter, eTimer, eDVBDB,
 from Components.config import config, ConfigSubsection, ConfigText
 from Tools.NumericalTextInput import NumericalTextInput
 from Components.NimManager import nimmanager
-from Components.Sources.Clock import Clock
+from Components.Sources.Source import ObsoleteSource
 from Components.Sources.RdsDecoder import RdsDecoder
 from Components.Sources.ServiceEvent import ServiceEvent
 from Components.Input import Input
@@ -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)
@@ -1042,7 +1053,7 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect
                ChannelSelectionEPG.__init__(self)
                SelectionEventInfo.__init__(self)
 
-               self["CurrentTime"] = Clock()
+               self["CurrentTime"] = ObsoleteSource(new_source = "global.CurrentTime", removal_date = "2008-01")
 
                self["actions"] = ActionMap(["OkCancelActions", "TvRadioActions"],
                        {
@@ -1292,7 +1303,7 @@ class RadioInfoBar(Screen, InfoBarEvent, InfoBarServiceName):
                Screen.__init__(self, session)
                InfoBarEvent.__init__(self)
                InfoBarServiceName.__init__(self)
-               self["CurrentTime"] = Clock()
+               self["CurrentTime"] = ObsoleteSource(new_source = "global.CurrentTime", removal_date = "2008-01")
                self["RdsDecoder"] = RdsDecoder(self.session.nav)
                self["BlinkingPoint"] = Pixmap()
                self["BlinkingPoint"].hide()
@@ -1305,9 +1316,6 @@ class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelS
                ChannelSelectionEdit.__init__(self)
                ChannelSelectionEPG.__init__(self)
                self.infobar = infobar
-               config.radio = ConfigSubsection();
-               config.radio.lastservice = ConfigText()
-               config.radio.lastroot = ConfigText()
                self.onLayoutFinish.append(self.onCreate)
 
                self.info = session.instantiateDialog(RadioInfoBar) # our simple infobar
@@ -1410,6 +1418,8 @@ class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelS
                if lastservice.valid():
                        self.servicelist.setCurrent(lastservice)
                        self.session.nav.playService(lastservice)
+               else:
+                       self.session.nav.stopService()
                self.info.show()
 
        def channelSelected(self): # just return selected service