X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1614705deccca22408e6a401341e56ccc2fc6682..962b249aab7d6be0a4d6b9c8605a3ac60a13aa6c:/lib/python/Screens/InfoBarGenerics.py diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index e101cd25..1b080d9b 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -1,12 +1,12 @@ from Screen import Screen from Components.ActionMap import ActionMap, HelpableActionMap from Components.ActionMap import NumberActionMap -from Components.Label import Label +from Components.Label import * from Components.config import configfile, configsequencearg from Components.config import config, configElement, ConfigSubsection, configSequence from ChannelSelection import ChannelSelection -from Components.Pixmap import PixmapConditional +from Components.Pixmap import Pixmap, PixmapConditional from Components.BlinkingPixmap import BlinkingPixmapConditional from Components.ServiceName import ServiceName from Components.EventInfo import EventInfo @@ -17,8 +17,12 @@ from EpgSelection import EPGSelection from Screens.MessageBox import MessageBox from Screens.Volume import Volume from Screens.Mute import Mute +from Screens.Dish import Dish from Screens.Standby import Standby from Screens.EventView import EventView +from Components.Harddisk import harddiskmanager + +from Tools import Notifications #from enigma import eTimer, eDVBVolumecontrol, quitMainloop from enigma import * @@ -58,6 +62,8 @@ class InfoBarVolumeControl: config.audio.volume.save() def volUp(self): + if (eDVBVolumecontrol.getInstance().isMuted()): + self.volMute() eDVBVolumecontrol.getInstance().volumeUp() self.volumeDialog.instance.show() self.volumeDialog.setValue(eDVBVolumecontrol.getInstance().getVolume()) @@ -65,6 +71,8 @@ class InfoBarVolumeControl: self.hideVolTimer.start(3000) def volDown(self): + if (eDVBVolumecontrol.getInstance().isMuted()): + self.volMute() eDVBVolumecontrol.getInstance().volumeDown() self.volumeDialog.instance.show() self.volumeDialog.setValue(eDVBVolumecontrol.getInstance().getVolume()) @@ -83,6 +91,11 @@ class InfoBarVolumeControl: else: self.muteDialog.instance.hide() +class InfoBarDish: + def __init__(self): + self.dishDialog = self.session.instantiateDialog(Dish) + self.onShown.append(self.dishDialog.instance.hide) + class InfoBarShowHide: """ InfoBar show/hide control, accepts toggleShow and hide actions, might start fancy animations. """ @@ -431,7 +444,7 @@ class InfoBarInstantRecord: self.recording = None self["BlinkingPoint"] = BlinkingPixmapConditional() - self.onShown.append(self["BlinkingPoint"].hidePixmap) + self.onShown.append(self["BlinkingPoint"].hideWidget) self["BlinkingPoint"].setConnect(self.session.nav.RecordTimer.isRecording) def stopCurrentRecording(self): @@ -500,6 +513,26 @@ class InfoBarAudioSelection: if n > 0: self.session.open(AudioSelection, audio) +from Screens.SubserviceSelection import SubserviceSelection + +class InfoBarSubserviceSelection: + def __init__(self): + self["SubserviceSelectionAction"] = HelpableActionMap(self, "InfobarSubserviceSelectionActions", + { + "subserviceSelection": (self.subserviceSelection, "Subservice list..."), + }) + + def subserviceSelection(self): + service = self.session.nav.getCurrentService() + subservices = service.subServices() + n = subservices.getNumberOfSubservices() + if n > 0: + self.session.openWithCallback(self.subserviceSelected, SubserviceSelection, subservices) + + def subserviceSelected(self, service): + if not service is None: + self.session.nav.playService(service) + class InfoBarAdditionalInfo: def __init__(self): self["DolbyActive"] = PixmapConditional() @@ -512,4 +545,42 @@ class InfoBarAdditionalInfo: self["FormatActive"] = PixmapConditional() # TODO: get the info from c++ somehow - self["FormatActive"].setConnect(lambda: False) \ No newline at end of file + self["FormatActive"].setConnect(lambda: False) + + self["ButtonRed"] = PixmapConditional(withTimer = False) + self["ButtonRed"].setConnect(lambda: harddiskmanager.HDDCount() > 0) + self.onShown.append(self["ButtonRed"].update) + self["ButtonRedText"] = LabelConditional(text = _("Record"), withTimer = False) + self["ButtonRedText"].setConnect(lambda: harddiskmanager.HDDCount() > 0) + self.onShown.append(self["ButtonRedText"].update) + + self["ButtonGreen"] = PixmapConditional() + self["ButtonGreen"].setConnect(lambda: self.session.nav.getCurrentService().subServices().getNumberOfSubservices() > 0) + self["ButtonGreenText"] = LabelConditional(text = _("Subservices")) + self["ButtonGreenText"].setConnect(lambda: self.session.nav.getCurrentService().subServices().getNumberOfSubservices() > 0) + + self["ButtonYellow"] = PixmapConditional() + self["ButtonYellow"].setConnect(lambda: False) + + self["ButtonBlue"] = PixmapConditional() + self["ButtonBlue"].setConnect(lambda: False) + +class InfoBarNotifications: + def __init__(self): + self.onExecBegin.append(self.checkNotifications) + Notifications.notificationAdded.append(self.checkNotificationsIfExecing) + + def checkNotificationsIfExecing(self): + if self.execing: + self.checkNotifications() + + def checkNotifications(self): + if len(Notifications.notifications): + n = Notifications.notifications[0] + Notifications.notifications = Notifications.notifications[1:] + print "open",n + cb = n[0] + if cb is not None: + self.session.openWithCallback(cb, *n[1:]) + else: + self.session.open(*n[1:])