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, 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, InfoBarPlugins, InfoBarSubtitleSupport, Screen):
40 def __init__(self, session):
41 Screen.__init__(self, session)
43 CiHandler.setSession(session)
45 self["actions"] = HelpableActionMap(self, "InfobarActions",
47 "showMovies": (self.showMovies, _("Play recorded movies...")),
48 "showRadio": (self.showRadio, _("Show the radio player...")),
49 "showTv": (self.showTv, _("Show the tv player...")),
52 for x in HelpableScreen, \
54 InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG, InfoBarRadioText, \
55 InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection, \
56 InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, \
57 InfoBarTuner, InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, \
58 InfoBarTeletextPlugin, InfoBarExtensions, InfoBarPiP, InfoBarSubtitleSupport, \
62 self.helpList.append((self["actions"], "InfobarActions", [("showMovies", _("view recordings..."))]))
63 self.helpList.append((self["actions"], "InfobarActions", [("showRadio", _("hear radio..."))]))
65 self["CurrentTime"] = Clock()
68 self.showTvChannelList(True)
71 if config.usage.e1like_radio_mode.value:
72 self.showRadioChannelList(True)
74 self.session.open(ChannelSelectionRadio)
77 self.session.openWithCallback(self.movieSelected, MovieSelection)
79 def movieSelected(self, service):
80 if service is not None:
81 self.session.open(MoviePlayer, service)
83 class MoviePlayer(InfoBarShowHide, \
85 InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications,
86 InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView,
87 InfoBarSummarySupport, InfoBarSubtitleSupport, Screen, InfoBarExtensions):
89 ENABLE_RESUME_SUPPORT = True
92 def __init__(self, session, service):
93 Screen.__init__(self, session)
95 self["actions"] = HelpableActionMap(self, "MoviePlayerActions",
97 "leavePlayer": (self.leavePlayer, _("leave movie player..."))
100 for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, \
101 InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, \
102 InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
103 InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
104 InfoBarSummarySupport, InfoBarSubtitleSupport, InfoBarExtensions:
107 self.lastservice = self.session.nav.getCurrentlyPlayingServiceReference()
108 self.session.nav.playService(service)
110 def leavePlayer(self):
111 self.is_closing = True
112 self.session.openWithCallback(self.leavePlayerConfirmed, MessageBox, _("Stop playing this movie?"))
114 def leavePlayerConfirmed(self, answer):
116 self.session.nav.playService(self.lastservice)
119 def showMovies(self):
120 ref = self.session.nav.getCurrentlyPlayingServiceReference()
121 self.session.openWithCallback(self.movieSelected, MovieSelection, ref)
123 def movieSelected(self, service):
124 if service is not None:
125 self.session.nav.playService(service)