X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8aefeab76e692a2a0edf057ec6ad2b743375f4dd..ff47103fb97bee2e47e8626a3356c80b25e22a4c:/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 old mode 100644 new mode 100755 index ebcf4f81..e092e82f --- a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py +++ b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py @@ -7,6 +7,7 @@ from Screens.HelpMenu import HelpableScreen from Screens.InfoBarGenerics import InfoBarSeek, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarShowHide, InfoBarNotifications from Components.ActionMap import ActionMap, NumberActionMap, HelpableActionMap from Components.Label import Label +from Components.Sources.StaticText import StaticText from Components.Pixmap import Pixmap from Components.FileList import FileList from Components.MenuList import MenuList @@ -14,20 +15,19 @@ from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase from Components.config import config from Tools.Directories import pathExists, fileExists from Components.Harddisk import harddiskmanager -from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier import servicedvd # load c++ part of dvd player plugin lastpath = "" class FileBrowser(Screen): - skin = """ - - - """ + def __init__(self, session, dvd_filelist = [ ]): Screen.__init__(self, session) + # for the skin: first try FileBrowser_DVDPlayer, then FileBrowser, this allows individual skinning + self.skinName = ["FileBrowser_DVDPlayer", "FileBrowser" ] + self.dvd_filelist = dvd_filelist if len(dvd_filelist): self["filelist"] = MenuList(self.dvd_filelist) @@ -43,11 +43,18 @@ class FileBrowser(Screen): self.filelist = FileList(currDir, matchingPattern = "(?i)^.*\.(iso)", useServiceRef = True) self["filelist"] = self.filelist - self["FilelistActions"] = ActionMap(["OkCancelActions"], + self["FilelistActions"] = ActionMap(["SetupActions"], { + "save": self.ok, "ok": self.ok, "cancel": self.exit }) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + self.setTitle(_("DVD File Browser")) def ok(self): if len(self.dvd_filelist): @@ -86,7 +93,7 @@ class DVDSummary(Screen): Name - + Position @@ -167,7 +174,7 @@ class ChapterZap(Screen): self.Timer.start(3000, True) class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarPVRState, InfoBarShowHide, HelpableScreen, InfoBarCueSheetSupport): -# ALLOW_SUSPEND = True + ALLOW_SUSPEND = Screen.SUSPEND_PAUSES ENABLE_RESUME_SUPPORT = True skin = """ @@ -346,8 +353,12 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP }) self.onClose.append(self.__onClose) + + from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier hotplugNotifier.append(self.hotplugCB) + self.autoplay = dvd_device or dvd_filelist + if dvd_device: self.physicalDVD = True else: @@ -501,8 +512,10 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP choices = [(_("Exit"), "exit"), (_("Continue playing"), "play")] if True or not self.physicalDVD: choices.insert(1,(_("Return to file browser"), "browser")) - if self.physicalDVD and not self.session.nav.getCurrentlyPlayingServiceReference().toString().endswith(harddiskmanager.getAutofsMountpoint(harddiskmanager.getCD())): - choices.insert(0,(_("Play DVD"), "playPhysical" )) + if self.physicalDVD: + cur = self.session.nav.getCurrentlyPlayingServiceReference() + if cur and not cur.toString().endswith(harddiskmanager.getAutofsMountpoint(harddiskmanager.getCD())): + choices.insert(0,(_("Play DVD"), "playPhysical" )) self.session.openWithCallback(self.exitCB, ChoiceBox, title=_("Leave DVD Player?"), list = choices) def sendKey(self, key): @@ -572,9 +585,11 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP self.askLeavePlayer() def opened(self): - if len(self.dvd_filelist) == 1: + if self.autoplay and self.dvd_filelist: # opened via autoplay self.FileBrowserClosed(self.dvd_filelist[0]) + elif self.autoplay and self.physicalDVD: + self.playPhysicalCB(True) elif self.physicalDVD: # opened from menu with dvd in drive self.session.openWithCallback(self.playPhysicalCB, MessageBox, text=_("Do you want to play DVD in drive?"), timeout=5 ) @@ -627,6 +642,7 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP def __onClose(self): self.restore_infobar_seek_config() self.session.nav.playService(self.oldService) + from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier hotplugNotifier.remove(self.hotplugCB) def playLastCB(self, answer): # overwrite infobar cuesheet function @@ -720,6 +736,7 @@ def filescan(**kwargs): paths_to_scan = [ ScanPath(path = "video_ts", with_subdirs = False), + ScanPath(path = "VIDEO_TS", with_subdirs = False), ScanPath(path = "", with_subdirs = False), ], name = "DVD",