From: acid-burn <acid-burn@opendreambox.org>
Date: Thu, 25 Nov 2010 17:40:21 +0000 (+0100)
Subject: DVDPlayer/src/servicedvd.cpp: add possibility to override servicename for played... 
X-Git-Tag: exp-2010.12~10^2
X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/579da0e777130e0947e7e4cacad19cc4a154d978

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
---

diff --git a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py
index 64b4ae50..063925e2 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 2ba53927..4ef00ab0 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;
 }