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 currentConfigSelectionElement, config
13 from Tools.Notifications import AddNotificationWithCallback
15 from Screens.InfoBarGenerics import InfoBarShowHide, \
16 InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, \
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
24 from Screens.HelpMenu import HelpableScreen, HelpMenu
30 class InfoBar(InfoBarShowHide,
31 InfoBarNumberZap, InfoBarChannelSelection, InfoBarMenu, InfoBarEPG,
32 InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection,
33 HelpableScreen, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish,
34 InfoBarSubserviceSelection, InfoBarTuner, InfoBarTimeshift, InfoBarSeek,
35 InfoBarSummarySupport, InfoBarTimeshiftState, InfoBarTeletextPlugin, InfoBarExtensions,
36 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, \
55 InfoBarEvent, InfoBarServiceName, InfoBarInstantRecord, InfoBarAudioSelection, \
56 InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, InfoBarSubserviceSelection, \
57 InfoBarTuner, InfoBarTimeshift, InfoBarSeek, InfoBarSummarySupport, InfoBarTimeshiftState, \
58 InfoBarTeletextPlugin, InfoBarExtensions, InfoBarSubtitleSupport:
61 self.helpList.append((self["actions"], "InfobarActions", [("showMovies", _("view recordings..."))]))
62 self.helpList.append((self["actions"], "InfobarActions", [("showRadio", _("hear radio..."))]))
64 self["CurrentTime"] = Clock()
67 self.showTvChannelList(True)
70 if currentConfigSelectionElement(config.usage.e1like_radio_mode) == "yes":
71 self.showRadioChannelList(True)
73 self.session.open(ChannelSelectionRadio)
76 self.session.openWithCallback(self.movieSelected, MovieSelection)
78 def movieSelected(self, service):
79 if service is not None:
80 self.session.open(MoviePlayer, service)
82 class MoviePlayer(InfoBarShowHide, \
84 InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications,
85 InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView,
86 InfoBarSummarySupport, InfoBarTeletextPlugin, InfoBarSubtitleSupport, Screen):
88 ENABLE_RESUME_SUPPORT = True
91 def __init__(self, session, service):
92 Screen.__init__(self, session)
94 self["actions"] = HelpableActionMap(self, "MoviePlayerActions",
96 "leavePlayer": (self.leavePlayer, _("leave movie player..."))
99 for x in HelpableScreen, InfoBarShowHide, InfoBarMenu, \
100 InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, \
101 InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
102 InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, \
103 InfoBarSummarySupport, InfoBarTeletextPlugin, InfoBarSubtitleSupport:
106 self.lastservice = self.session.nav.getCurrentlyPlayingServiceReference()
107 self.session.nav.playService(service)
109 def leavePlayer(self):
110 self.is_closing = True
111 self.session.openWithCallback(self.leavePlayerConfirmed, MessageBox, _("Stop playing this movie?"))
113 def leavePlayerConfirmed(self, answer):
115 self.session.nav.playService(self.lastservice)
118 def showMovies(self):
119 ref = self.session.nav.getCurrentlyPlayingServiceReference()
120 self.session.openWithCallback(self.movieSelected, MovieSelection, ref)
122 def movieSelected(self, service):
123 if service is not None:
124 self.session.nav.playService(service)