- self.session.open(MovieSelection)
-
- def audioSelection(self):
- service = self.session.nav.getCurrentService()
- audio = service.audioTracks()
- n = audio.getNumberOfTracks()
- if n > 0:
- self.session.open(AudioSelection, audio)
+ self.session.openWithCallback(self.movieSelected, MovieSelection)
+
+ def movieSelected(self, service):
+ if service is not None:
+ self.session.open(MoviePlayer, service)
+
+class MoviePlayer(Screen, InfoBarVolumeControl, InfoBarShowHide, InfoBarPowerKey, \
+ InfoBarMenu, \
+ InfoBarServiceName, InfoBarPVR, InfoBarAudioSelection, HelpableScreen):
+
+ def __init__(self, session, service):
+ Screen.__init__(self, session)
+
+ self["actions"] = ActionMap( [ "MoviePlayerActions" ],
+ {
+ "leavePlayer": self.leavePlayer
+ })
+
+ for x in HelpableScreen, InfoBarVolumeControl, InfoBarShowHide, InfoBarPowerKey, InfoBarMenu, InfoBarServiceName, InfoBarPVR, InfoBarAudioSelection:
+ x.__init__(self)
+
+ self["CurrentTime"] = ServicePosition(self.session.nav, ServicePosition.TYPE_REMAINING)
+
+ self.lastservice = self.session.nav.getCurrentlyPlayingServiceReference()
+ self.session.nav.playService(service)
+
+ def leavePlayer(self):
+ self.session.openWithCallback(self.leavePlayerConfirmed, MessageBox, _("Stop playing this movie?"))
+
+ def leavePlayerConfirmed(self, answer):
+ if answer == True:
+ self.session.nav.playService(self.lastservice)
+ self.close()