plugins can appear in the extensions menu now
[enigma2.git] / lib / python / Screens / InfoBar.py
index d60725f235f47b118363f2e21d0771152bc3d4a3..4a1f318a7b7f13cd73f87b8ed59428a488010c99 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 currentConfigSelectionElement, 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
+       InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions, \
+       InfoBarSubtitleSupport, InfoBarPiP, InfoBarSubtitles, InfoBarPlugins
 
 from Screens.HelpMenu import HelpableScreen, HelpMenu
 
 
 from Screens.HelpMenu import HelpableScreen, HelpMenu
 
@@ -25,38 +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, 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, \
                                InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, \
                                InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection, \
                                InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, \
-                               InfoBarTuner, InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport:
+                               InfoBarTuner, InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, \
+                               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 currentConfigSelectionElement(config.usage.e1like_radio_mode) == "yes":
+                       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)
@@ -65,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(Screen, 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):
+               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)
@@ -79,23 +98,18 @@ class MoviePlayer(Screen, 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):