X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b52a614903cab3c3b8d1a1eae871d3bdefa926ce..9c07bd8592acaee302ac0760d7c0f9da0e2393db:/lib/python/Plugins/Extensions/DVDPlayer/plugin.py diff --git a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py index a44d042b..8a4c8611 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py +++ b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py @@ -147,9 +147,10 @@ class ChapterZap(Screen): 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 = """ @@ -222,12 +223,12 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarC 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) @@ -243,6 +244,7 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarC 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, @@ -329,8 +331,13 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarC 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: @@ -388,28 +395,28 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarC 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: @@ -453,13 +460,13 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarC 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() @@ -509,15 +516,11 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarC 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": @@ -531,11 +534,25 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarC 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 -# if answer == True: -# self.doSeek(self.resume_point) - self.hideAfterResume() +# 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: