1 from Screen import Screen
3 from Screens.MovieSelection import MovieSelection
4 from Screens.ChannelSelection import ChannelSelectionRadio
5 from Screens.MessageBox import MessageBox
6 from Screens.Ci import CiHandler
7 from ServiceReference import ServiceReference
9 from Components.Sources.Clock import Clock
10 from Components.ActionMap import ActionMap, HelpableActionMap
11 from Components.config import config
13 from Tools.Notifications import AddNotificationWithCallback
15 from Screens.InfoBarGenerics import InfoBarShowHide, \
16 InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarRadioText, \
17 InfoBarEPG, InfoBarEvent, InfoBarServiceName, InfoBarSeek, InfoBarInstantRecord, \
18 InfoBarAudioSelection, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, \
19 InfoBarSubserviceSelection, InfoBarTuner, InfoBarShowMovies, InfoBarTimeshift, \
20 InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView, \
21 InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions, \
22 InfoBarSubtitleSupport, InfoBarPiP, InfoBarSubtitles, InfoBarPlugins
24 from Screens.HelpMenu import HelpableScreen, HelpMenu
30 class InfoBar(InfoBarShowHide,
31 InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, InfoBarRadioText,
32 InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection,
33 HelpableScreen, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish,
34 InfoBarSubserviceSelection, InfoBarTuner, InfoBarTimeshift, InfoBarSeek,
35 InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions,
36 InfoBarPiP, InfoBarSubtitles, InfoBarPlugins,
37 InfoBarSubtitleSupport, Screen):
41 def __init__(self, session):
42 Screen.__init__(self, session)
44 CiHandler.setSession(session)
46 self["actions"] = HelpableActionMap(self, "InfobarActions",
48 "showMovies": (self.showMovies, _("Play recorded movies...")),
49 "showRadio": (self.showRadio, _("Show the radio player...")),
50 "showTv": (self.showTv, _("Show the tv player...")),
53 for x in HelpableScreen, \
55 InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, InfoBarRadioText, \
56 InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection, \
57 InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, \
58 InfoBarTuner, InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, \
59 InfoBarTeletextPlugin, InfoBarExtensions, InfoBarPiP, InfoBarSubtitles, InfoBarSubtitleSupport, \
63 self.helpList.append((self["actions"], "InfobarActions", [("showMovies", _("view recordings..."))]))
64 self.helpList.append((self["actions"], "InfobarActions", [("showRadio", _("hear radio..."))]))
66 self["CurrentTime"] = Clock()
69 self.showTvChannelList(True)
72 if config.usage.e1like_radio_mode.value:
73 self.showRadioChannelList(True)
75 self.session.open(ChannelSelectionRadio)
78 self.session.openWithCallback(self.movieSelected, MovieSelection)
80 def movieSelected(self, service):
81 if service is not None:
82 self.session.open(MoviePlayer, service)
84 class MoviePlayer(InfoBarShowHide, \
86 InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications,
87 InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView,
88 InfoBarSummarySupport, InfoBarTeletextPlugin, InfoBarSubtitleSupport, Screen):
90 ENABLE_RESUME_SUPPORT = True
93 def __init__(self, session, service):
94 Screen.__init__(self, session)
96 self["actions"] = HelpableActionMap(self, "MoviePlayerActions",
98 "leavePlayer": (self.leavePlayer, _("leave movie player..."))
101 for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, \
102 InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, \
103 InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
104 InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
105 InfoBarSummarySupport, InfoBarTeletextPlugin, InfoBarSubtitleSupport:
108 self.lastservice = self.session.nav.getCurrentlyPlayingServiceReference()
109 self.session.nav.playService(service)
111 def leavePlayer(self):
112 self.is_closing = True
113 self.session.openWithCallback(self.leavePlayerConfirmed, MessageBox, _("Stop playing this movie?"))
115 def leavePlayerConfirmed(self, answer):
117 self.session.nav.playService(self.lastservice)
120 def showMovies(self):
121 ref = self.session.nav.getCurrentlyPlayingServiceReference()
122 self.session.openWithCallback(self.movieSelected, MovieSelection, ref)
124 def movieSelected(self, service):
125 if service is not None:
126 self.session.nav.playService(service)