From 579da0e777130e0947e7e4cacad19cc4a154d978 Mon Sep 17 00:00:00 2001 From: acid-burn Date: Thu, 25 Nov 2010 18:40:21 +0100 Subject: [PATCH] DVDPlayer/src/servicedvd.cpp: add possibility to override servicename for played dvd's. DVDPlayer/plugin.py: manually set servicename if playing from a dvd structure on hdd/networkmount. Small useability improvements. refs #439 --- lib/python/Plugins/Extensions/DVDPlayer/plugin.py | 17 +++++++++++++++++ .../Plugins/Extensions/DVDPlayer/src/servicedvd.cpp | 5 ++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py index 64b4ae5..063925e 100755 --- a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py +++ b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py @@ -39,7 +39,10 @@ class FileBrowser(Screen): currDir = "/media/dvd/" if not pathExists(currDir): currDir = "/" + if lastpath == "": # 'None' is magic to start at the list of mountpoints + currDir = None + inhibitDirs = ["/bin", "/boot", "/dev", "/etc", "/home", "/lib", "/proc", "/sbin", "/share", "/sys", "/tmp", "/usr", "/var"] self.filelist = FileList(currDir, matchingPattern = "(?i)^.*\.(iso)", useServiceRef = True) self["filelist"] = self.filelist @@ -79,6 +82,12 @@ class FileBrowser(Screen): lastpath = (pathname.rstrip("/").rsplit("/",1))[0] print "lastpath video_ts.ifo=", lastpath self.close(pathname) + if fileExists(pathname+"VIDEO_TS/VIDEO_TS.IFO"): + print "dvd structure found, trying to open..." + lastpath = (pathname.rstrip("/").rsplit("/",1))[0] + print "lastpath video_ts.ifo=", lastpath + pathname += "VIDEO_TS" + self.close(pathname) else: lastpath = filename[0:filename.rfind("/")] print "lastpath directory=", lastpath @@ -625,6 +634,14 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP newref = eServiceReference(4369, 0, val) print "play", newref.toString() if curref is None or curref != newref: + if newref.toString().endswith("/VIDEO_TS") or newref.toString().endswith("/"): + names = newref.toString().rsplit("/",3) + if names[2].startswith("Disk ") or names[2].startswith("DVD "): + name = str(names[1]) + " - " + str(names[2]) + else: + name = names[2] + print "setting name to: ", self.service + newref.setName(str(name)) self.session.nav.playService(newref) self.service = self.session.nav.getCurrentService() print "self.service", self.service diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp index 2ba5392..4ef00ab 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp +++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp @@ -480,7 +480,10 @@ RESULT eServiceDVD::getName(std::string &name) if ( m_ddvd_titlestring[0] != '\0' ) name = m_ddvd_titlestring; else - name = m_ref.path; + if ( !m_ref.name.empty() ) + name = m_ref.name; + else + name = m_ref.path; return 0; } -- 2.7.4