DVDPlayer/src/servicedvd.cpp: add possibility to override servicename for played...
authoracid-burn <acid-burn@opendreambox.org>
Thu, 25 Nov 2010 17:40:21 +0000 (18:40 +0100)
committeracid-burn <acid-burn@opendreambox.org>
Thu, 25 Nov 2010 17:40:21 +0000 (18:40 +0100)
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
lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp

index 64b4ae5..063925e 100755 (executable)
@@ -39,7 +39,10 @@ class FileBrowser(Screen):
                                currDir = "/media/dvd/"
                        if not pathExists(currDir):
                                currDir = "/"
                                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
 
                        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)
                                        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
                        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:
                        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
                                self.session.nav.playService(newref)
                                self.service = self.session.nav.getCurrentService()
                                print "self.service", self.service
index 2ba5392..4ef00ab 100644 (file)
@@ -480,7 +480,10 @@ RESULT eServiceDVD::getName(std::string &name)
        if ( m_ddvd_titlestring[0] != '\0' )
                name = m_ddvd_titlestring;
        else
        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;
 }
 
        return 0;
 }