diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-03-24 00:49:20 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-03-24 00:49:20 +0000 |
| commit | d1e450f95a9b79b144a00dcf0f9356ff6cb9bfb2 (patch) | |
| tree | 85131a89500ccc60f343732e6727f00df907bc17 /lib/python/Screens/ChannelSelection.py | |
| parent | 058d38ca9bcfe94c5c551eac231f808330af3581 (diff) | |
| download | enigma2-d1e450f95a9b79b144a00dcf0f9356ff6cb9bfb2.tar.gz enigma2-d1e450f95a9b79b144a00dcf0f9356ff6cb9bfb2.zip | |
add a radiomode background picture (mvi file.. changable in
/etc/enigma2/config ... config.misc.radiopic = /bla/blubber.mvi
add support for radio text plus,
add rass (radio screen show) support (yes used by SWR3, cont.ra and DASDING)
thanks to seddi for some piece of code
for better single iframe support its recommend to update in
dreambox-dvb-modules.bb CVSDATE for dm7025 to 20070323
Diffstat (limited to 'lib/python/Screens/ChannelSelection.py')
| -rw-r--r-- | lib/python/Screens/ChannelSelection.py | 58 |
1 files changed, 41 insertions, 17 deletions
diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index 5a0f1177..7f9f797e 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -1,7 +1,7 @@ from Screen import Screen from Components.Button import Button from Components.ServiceList import ServiceList -from Components.ActionMap import NumberActionMap, ActionMap +from Components.ActionMap import NumberActionMap, ActionMap, HelpableActionMap from Components.MenuList import MenuList from Components.ServiceEventTracker import ServiceEventTracker from EpgSelection import EPGSelection @@ -11,11 +11,13 @@ from Screens.FixedMenu import FixedMenu from Tools.NumericalTextInput import NumericalTextInput from Components.NimManager import nimmanager from Components.Sources.Clock import Clock +from Components.Sources.RdsDecoder import RdsDecoder from Components.Input import Input from Components.ParentalControl import parentalControl from Screens.InputBox import InputBox, PinInput from Screens.MessageBox import MessageBox from Screens.ServiceInfo import ServiceInfo +from Screens.RdsDisplay import RassInteractive from ServiceReference import ServiceReference from Tools.BoundFunction import boundFunction from re import * @@ -1256,32 +1258,30 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect self.revertMode = None self.close(None) -from Screens.InfoBarGenerics import InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarRadioText +from Screens.InfoBarGenerics import InfoBarEvent, InfoBarServiceName -class RadioInfoBar(Screen, InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord): +class RadioInfoBar(Screen, InfoBarEvent, InfoBarServiceName): def __init__(self, session): Screen.__init__(self, session) InfoBarEvent.__init__(self) InfoBarServiceName.__init__(self) - InfoBarInstantRecord.__init__(self) self["CurrentTime"] = Clock() + self["RdsDecoder"] = RdsDecoder(self.session.nav) -class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelectionEPG, InfoBarRadioText): - +class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelectionEPG): ALLOW_SUSPEND = True - def __init__(self, session): + def __init__(self, session, infobar): ChannelSelectionBase.__init__(self, session) ChannelSelectionEdit.__init__(self) ChannelSelectionEPG.__init__(self) - InfoBarRadioText.__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) + self.info = session.instantiateDialog(RadioInfoBar) # our simple infobar self["actions"] = ActionMap(["OkCancelActions", "TvRadioActions"], { @@ -1297,6 +1297,37 @@ class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelS iPlayableService.evEnd: self.__evServiceEnd }) +########## RDS Radiotext / Rass Support BEGIN + self.infobar = infobar # reference to real infobar (the one and only) + self["RdsDecoder"] = self.info["RdsDecoder"] + self["RdsActions"] = HelpableActionMap(self, "InfobarRdsActions", + { + "startRassInteractive": (self.startRassInteractive, _("View Rass interactive...")) + },-1) + self["RdsActions"].setEnabled(False) + infobar.rds_display.onRassInteractivePossibilityChanged.append(self.RassInteractivePossibilityChanged) + + def startRassInteractive(self): + self.info.hide(); + self.infobar.rass_interactive = self.session.openWithCallback(self.RassInteractiveClosed, RassInteractive) + + def RassInteractiveClosed(self): + self.info.show() + self.infobar.rass_interactive = None + self.infobar.RassSlidePicChanged() + + def RassInteractivePossibilityChanged(self, state): + self["RdsActions"].setEnabled(state) +########## RDS Radiotext / Rass Support END + + def closeRadio(self): + self.infobar.rds_display.onRassInteractivePossibilityChanged.remove(self.RassInteractivePossibilityChanged) + self.info.hide() + #set previous tv service + lastservice=eServiceReference(config.tv.lastservice.value) + self.session.nav.playService(lastservice) + self.close(None) + def __evServiceStart(self): service = self.session.nav.getCurrentService() if service: @@ -1371,13 +1402,6 @@ class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelS config.radio.lastservice.save() self.saveRoot() - def closeRadio(self): - self.info.hide() - #set previous tv service - lastservice=eServiceReference(config.tv.lastservice.value) - self.session.nav.playService(lastservice) - self.close(None) - class SimpleChannelSelection(ChannelSelectionBase): def __init__(self, session, title): ChannelSelectionBase.__init__(self, session) |
