self.Timer.callback.append(self.keyOK)
self.Timer.start(3000, True)
-class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarCueSheetSupport, InfoBarPVRState, InfoBarShowHide, HelpableScreen):
- ALLOW_SUSPEND = True
- ENABLE_RESUME_SUPPORT = True
+class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarPVRState, InfoBarShowHide, HelpableScreen):
+#InfoBarCueSheetSupport,
+# ALLOW_SUSPEND = True
+# ENABLE_RESUME_SUPPORT = True
skin = """
<screen name="DVDPlayer" flags="wfNoBorder" position="0,380" size="720,160" title="InfoBar" backgroundColor="transparent" >
Screen.__init__(self, session)
InfoBarBase.__init__(self)
InfoBarNotifications.__init__(self)
- InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions")
+# InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions")
InfoBarShowHide.__init__(self)
HelpableScreen.__init__(self)
self.save_infobar_seek_config()
self.change_infobar_seek_config()
- InfoBarSeek.__init__(self)
+ InfoBarSeek.__init__(self, useSeekBackHack=False)
InfoBarPVRState.__init__(self)
self.dvdScreen = self.session.instantiateDialog(DVDOverlay)
self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
{
+ iPlayableService.evStopped: self.__serviceStopped,
iPlayableService.evUser: self.__timeUpdated,
iPlayableService.evUser+1: self.__statePlay,
iPlayableService.evUser+2: self.__statePause,
if retval > 0:
self.zapToNumber(retval)
+ def __serviceStopped(self):
+ self.dvdScreen.hide()
+ self.service.subtitle().disableSubtitles(self.session.current_dialog.instance)
+
def serviceStarted(self): #override InfoBarShowHide function
- pass
+ self.dvdScreen.show()
+ self.service.subtitle().enableSubtitles(self.dvdScreen.instance, None)
def doEofInternal(self, playing):
if self.in_menu:
def __menuOpened(self):
self.hide()
self.in_menu = True
+ self["NumberActions"].setEnabled(False)
def __menuClosed(self):
self.show()
self.in_menu = False
+ self["NumberActions"].setEnabled(True)
def setChapterLabel(self):
chapterLCD = "Menu"
print "StringAvail"
def __osdAudioInfoAvail(self):
- audioString = self.service.info().getInfoString(iPlayableService.evUser+6)
+ audioString = self.service.info().getInfoString(iServiceInformation.sUser+6)
print "AudioInfoAvail "+audioString
self["audioLabel"].setText(audioString)
if not self.in_menu:
self.doShow()
def __osdSubtitleInfoAvail(self):
- subtitleString = self.service.info().getInfoString(iPlayableService.evUser+7)
+ subtitleString = self.service.info().getInfoString(iServiceInformation.sUser+7)
print "SubtitleInfoAvail "+subtitleString
self["subtitleLabel"].setText(subtitleString)
if not self.in_menu:
self.doShow()
def __chapterUpdated(self):
- self.currentChapter = self.service.info().getInfo(iPlayableService.evUser+8)
- self.totalChapters = self.service.info().getInfo(iPlayableService.evUser+80)
+ self.currentChapter = self.service.info().getInfo(iServiceInformation.sUser+8)
+ self.totalChapters = self.service.info().getInfo(iServiceInformation.sUser+80)
self.setChapterLabel()
print "__chapterUpdated: %d/%d" % (self.currentChapter, self.totalChapters)
def __titleUpdated(self):
- self.currentTitle = self.service.info().getInfo(iPlayableService.evUser+9)
- self.totalTitles = self.service.info().getInfo(iPlayableService.evUser+90)
+ self.currentTitle = self.service.info().getInfo(iServiceInformation.sUser+9)
+ self.totalTitles = self.service.info().getInfo(iServiceInformation.sUser+90)
self.setChapterLabel()
print "__titleUpdated: %d/%d" % (self.currentTitle, self.totalTitles)
if not self.in_menu:
def enterDVDMenu(self):
if self.service:
self.service.keys().keyPressed(iServiceKeys.keyUser+7)
-
+
def seekBeginning(self):
if self.service:
seekable = self.getSeek()
if seekable is not None:
seekable.seekTo(0)
-
+
def zapToNumber(self, number):
if self.service:
seekable = self.getSeek()
self.service = self.session.nav.getCurrentService()
print "self.service", self.service
print "cur_dlg", self.session.current_dialog
- self.dvdScreen.show()
- self.service.subtitle().enableSubtitles(self.dvdScreen.instance, None)
def exitCB(self, answer):
if answer is not None:
if answer[1] == "exit":
if self.service:
- self.dvdScreen.hide()
- self.service.subtitle().disableSubtitles(self.session.current_dialog.instance)
self.service = None
self.close()
if answer[1] == "browser":
self.restore_infobar_seek_config()
self.session.nav.playService(self.oldService)
+# def playLastCB(self, answer): # overwrite infobar cuesheet function
+# print "playLastCB", answer, self.resume_point
+# pos = self.resume_point
+# title = self.resume_point % 90000
+# pos -= title
+# chapter = title % 256
+# title /= 256
+# print "pos", pos, "title", title, "chapter", chapter
+# if self.service:
+# seek = self.service.seek()
+# if title != 1:
+# seek.seekTitle(title)
+# self.resume_state = 1
+# elif chapter != 1:
+# seek.seekChapter(chapter)
+# self.resume_state = 2
+# else:
+# seek.seekTo(pos)
+# self.hideAfterResume()
+
def showAfterCuesheetOperation(self):
if not self.in_menu:
self.show()
print "DVDCreateSummary"
return DVDSummary
+#override some InfoBarSeek functions
+ def doEof(self):
+ self.setSeekState(self.SEEK_STATE_PLAY)
+
+ def calcRemainingTime(self):
+ return 0
+
def main(session, **kwargs):
session.open(DVDPlayer)