disallow non-mpeg2 video streams for dvdburn
[enigma2.git] / lib / python / Plugins / Extensions / DVDBurn / TitleList.py
index 685f4b3b6b73ebe02463e17d73c85078603be4f9..f4467707b3ed209664cec3cddb5d848ec840f547 100644 (file)
@@ -11,7 +11,7 @@ from Components.Sources.Progress import Progress
 from Components.FileList import FileList
 from Components.Label import Label
 from enigma import eListboxPythonMultiContent, gFont, RT_HALIGN_LEFT
-from Tools.Directories import resolveFilename, SCOPE_PLAYLIST
+from Tools.Directories import resolveFilename, SCOPE_PLUGINS
 
 class TitleList(Screen):
        skin = """
@@ -130,10 +130,13 @@ class TitleList(Screen):
                if source is None:
                        return None
                t = self.project.addService(source)
-               self.editTitle(t, readOnly=True)
+               self.editTitle(t, readOnly=False)
 
        def removeCurrentTitle(self):
                title = self.getCurrentTitle()
+               self.removeTitle(title)
+       
+       def removeTitle(self, title):
                if title is not None:
                        self.project.titles.remove(title)
                        self.updateTitleList()
@@ -147,7 +150,7 @@ class TitleList(Screen):
                self["title_label"].text = _("Table of content for collection") + " \"" + self.project.settings.name.getValue() + "\":"
 
        def loadTemplate(self):
-               filename = resolveFilename(SCOPE_PLAYLIST)+"DreamboxDVDtemplate.ddvdp.xml"
+               filename = resolveFilename(SCOPE_PLUGINS)+"Extensions/DVDBurn/DreamboxDVDtemplate.ddvdp.xml"
                if self.project.loadProject(filename):
                        self["error_label"].hide()
                        return True
@@ -158,6 +161,10 @@ class TitleList(Screen):
                        return False
 
        def burnProject(self):
+               autochapter = self.project.settings.autochapter.getValue()
+               if autochapter > 0:
+                       for title in self.project.titles:
+                               title.produceAutoChapter(autochapter)
                self.project.waitboxref = self.project.session.open(ProjectSettings.WaitBox,self.burnProjectCB)
 
        def burnProjectCB(self):
@@ -214,11 +221,14 @@ class TitleList(Screen):
                                self.session.openWithCallback(self.titleEditDone, TitleCutter.TitleCutter, t)
 
        def titleEditDone(self, cutlist):
-               t = self.current_edit_title
-               t.cuesheet = cutlist
-               t.produceFinalCuesheet()
-               print "title edit of %s done, resulting cutlist:" % (t.source.toString()), t.cutlist, "chaptermarks:", t.chaptermarks
-               self.updateTitleList()
+               if cutlist != False:
+                       t = self.current_edit_title
+                       t.cuesheet = cutlist
+                       t.produceFinalCuesheet()
+                       self.updateTitleList()
+               else:
+                       self.session.open(MessageBox,text = _("The DVD standard doesn't support H.264 (HDTV) video streams!"),type = MessageBox.TYPE_ERROR)
+                       self.removeTitle(self.current_edit_title)
 
        def leave(self):
                self.close()