config rewrite. some extensions still need to be updated.
[enigma2.git] / lib / python / Screens / InfoBar.py
index dfafc1161d2d105aed5b37b5cf21012815521635..410837778c2e1da88fb67f70039b90206c0c71f8 100644 (file)
@@ -3,21 +3,23 @@ from Screen import Screen
 from Screens.MovieSelection import MovieSelection
 from Screens.ChannelSelection import ChannelSelectionRadio
 from Screens.MessageBox import MessageBox
 from Screens.MovieSelection import MovieSelection
 from Screens.ChannelSelection import ChannelSelectionRadio
 from Screens.MessageBox import MessageBox
+from Screens.Ci import CiHandler
 from ServiceReference import ServiceReference
 
 from ServiceReference import ServiceReference
 
-from Components.Clock import Clock
+from Components.Sources.Clock import Clock
 from Components.ActionMap import ActionMap, HelpableActionMap
 from Components.ActionMap import ActionMap, HelpableActionMap
-from Components.ServicePosition import ServicePosition, ServicePositionGauge
+from Components.config import config
 
 from Tools.Notifications import AddNotificationWithCallback
 
 from Screens.InfoBarGenerics import InfoBarShowHide, \
 
 from Tools.Notifications import AddNotificationWithCallback
 
 from Screens.InfoBarGenerics import InfoBarShowHide, \
-       InfoBarPowerKey, InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, \
+       InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, \
        InfoBarEPG, InfoBarEvent, InfoBarServiceName, InfoBarSeek, InfoBarInstantRecord, \
        InfoBarAudioSelection, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, \
        InfoBarSubserviceSelection, InfoBarTuner, InfoBarShowMovies, InfoBarTimeshift,  \
        InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView, \
        InfoBarEPG, InfoBarEvent, InfoBarServiceName, InfoBarSeek, InfoBarInstantRecord, \
        InfoBarAudioSelection, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, \
        InfoBarSubserviceSelection, InfoBarTuner, InfoBarShowMovies, InfoBarTimeshift,  \
        InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView, \
-       InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin
+       InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions, \
+       InfoBarSubtitleSupport, InfoBarPiP, InfoBarSubtitles, InfoBarPlugins
 
 from Screens.HelpMenu import HelpableScreen, HelpMenu
 
 
 from Screens.HelpMenu import HelpableScreen, HelpMenu
 
@@ -25,39 +27,52 @@ from enigma import *
 
 import time
 
 
 import time
 
-class InfoBar(InfoBarShowHide, InfoBarPowerKey,
+class InfoBar(InfoBarShowHide,
        InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG,
        InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection, 
        HelpableScreen, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish,
        InfoBarSubserviceSelection, InfoBarTuner, InfoBarTimeshift, InfoBarSeek,
        InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG,
        InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection, 
        HelpableScreen, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish,
        InfoBarSubserviceSelection, InfoBarTuner, InfoBarTimeshift, InfoBarSeek,
-       InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, Screen):
+       InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions,
+       InfoBarPiP, InfoBarSubtitles, InfoBarPlugins,
+       InfoBarSubtitleSupport, Screen):
+       
+       ALLOW_SUSPEND = True
 
        def __init__(self, session):
                Screen.__init__(self, session)
 
 
        def __init__(self, session):
                Screen.__init__(self, session)
 
+               CiHandler.setSession(session)
+
                self["actions"] = HelpableActionMap(self, "InfobarActions",
                        {
                                "showMovies": (self.showMovies, _("Play recorded movies...")),
                self["actions"] = HelpableActionMap(self, "InfobarActions",
                        {
                                "showMovies": (self.showMovies, _("Play recorded movies...")),
-                               "showRadio": (self.showRadio, _("Show the radio player..."))
-                       })
+                               "showRadio": (self.showRadio, _("Show the radio player...")),
+                               "showTv": (self.showTv, _("Show the tv player...")),
+                       }, prio=2)
                
                for x in HelpableScreen, \
                
                for x in HelpableScreen, \
-                               InfoBarShowHide, InfoBarPowerKey, \
+                               InfoBarShowHide, \
                                InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, \
                                InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection, \
                                InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, \
                                InfoBarTuner, InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, \
                                InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, \
                                InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection, \
                                InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, \
                                InfoBarTuner, InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, \
-                               InfoBarTeletextPlugin:
+                               InfoBarTeletextPlugin, InfoBarExtensions, InfoBarPiP, InfoBarSubtitles, InfoBarSubtitleSupport, \
+                               InfoBarPlugins:
                        x.__init__(self)
 
                        x.__init__(self)
 
-               self.helpList.append((self["actions"], "InfobarActions", [("showMovies", "Watch a Movie...")]))
-               self.helpList.append((self["actions"], "InfobarActions", [("showRadio", "Hear Radio...")]))
+               self.helpList.append((self["actions"], "InfobarActions", [("showMovies", _("view recordings..."))]))
+               self.helpList.append((self["actions"], "InfobarActions", [("showRadio", _("hear radio..."))]))
 
                self["CurrentTime"] = Clock()
 
                self["CurrentTime"] = Clock()
-               # ServicePosition(self.session.nav, ServicePosition.TYPE_REMAINING)
+
+       def showTv(self):
+               self.showTvChannelList(True)
 
        def showRadio(self):
 
        def showRadio(self):
-               self.session.open(ChannelSelectionRadio)
+               if config.usage.e1like_radio_mode.value:
+                       self.showRadioChannelList(True)
+               else:
+                       self.session.open(ChannelSelectionRadio)
 
        def showMovies(self):
                self.session.openWithCallback(self.movieSelected, MovieSelection)
 
        def showMovies(self):
                self.session.openWithCallback(self.movieSelected, MovieSelection)
@@ -66,11 +81,14 @@ class InfoBar(InfoBarShowHide, InfoBarPowerKey,
                if service is not None:
                        self.session.open(MoviePlayer, service)
 
                if service is not None:
                        self.session.open(MoviePlayer, service)
 
-class MoviePlayer(InfoBarShowHide, InfoBarPowerKey, \
+class MoviePlayer(InfoBarShowHide, \
                InfoBarMenu, \
                InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications,
                InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView,
                InfoBarMenu, \
                InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications,
                InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView,
-               InfoBarSummarySupport, Screen):
+               InfoBarSummarySupport, InfoBarTeletextPlugin, InfoBarSubtitleSupport, Screen):
+
+       ENABLE_RESUME_SUPPORT = True
+       ALLOW_SUSPEND = True
                
        def __init__(self, session, service):
                Screen.__init__(self, session)
                
        def __init__(self, session, service):
                Screen.__init__(self, session)
@@ -80,23 +98,18 @@ class MoviePlayer(InfoBarShowHide, InfoBarPowerKey, \
                                "leavePlayer": (self.leavePlayer, _("leave movie player..."))
                        })
                
                                "leavePlayer": (self.leavePlayer, _("leave movie player..."))
                        })
                
-               for x in HelpableScreen, InfoBarShowHide, InfoBarPowerKey, InfoBarMenu, \
+               for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, \
                                InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, \
                                InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
                                InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
                                InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, \
                                InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
                                InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
-                               InfoBarSummarySupport:
+                               InfoBarSummarySupport, InfoBarTeletextPlugin, InfoBarSubtitleSupport:
                        x.__init__(self)
 
                        x.__init__(self)
 
-               self["CurrentTime"] = ServicePosition(self.session.nav, ServicePosition.TYPE_REMAINING)
-               self["ElapsedTime"] = ServicePosition(self.session.nav, ServicePosition.TYPE_POSITION)
-               self["PositionGauge"] = ServicePositionGauge(self.session.nav)
-               
-               # TYPE_LENGTH?
-               
                self.lastservice = self.session.nav.getCurrentlyPlayingServiceReference()
                self.session.nav.playService(service)
 
        def leavePlayer(self):
                self.lastservice = self.session.nav.getCurrentlyPlayingServiceReference()
                self.session.nav.playService(service)
 
        def leavePlayer(self):
+               self.is_closing = True
                self.session.openWithCallback(self.leavePlayerConfirmed, MessageBox, _("Stop playing this movie?"))
        
        def leavePlayerConfirmed(self, answer):
                self.session.openWithCallback(self.leavePlayerConfirmed, MessageBox, _("Stop playing this movie?"))
        
        def leavePlayerConfirmed(self, answer):