From: Fraxinas Date: Wed, 12 Nov 2008 19:22:43 +0000 (+0100) Subject: Merge branch 'master' of fraxinas@git.opendreambox.org:/git/enigma2 X-Git-Tag: 2.6.0~613 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/4946a987277adbbd057e4d82d54e7e4ef688e419?hp=1795d64b9095d5f320a0e58a93f39c48998147ad Merge branch 'master' of fraxinas@git.opendreambox.org:/git/enigma2 --- diff --git a/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py b/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py index 55a72c10..4923d4da 100644 --- a/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py +++ b/lib/python/Plugins/Extensions/DVDBurn/DVDProject.py @@ -32,6 +32,7 @@ class DVDProject: self.settings = ConfigSubsection() self.settings.name = ConfigText(fixed_size = False, visible_width = 40) self.settings.authormode = ConfigSelection(choices = [("menu_linked", _("Linked titles with a DVD menu")), ("just_linked", _("Direct playback of linked titles without menu")), ("menu_seperate", _("Seperate titles with a main menu")), ("data_ts", _("Dreambox format data DVD (HDTV compatible)"))]) + self.settings.titlesetmode = ConfigSelection(choices = [("single", ("Simple titleset (compatibility for legacy players)")), ("multi", ("Complex (allows mixing audio tracks and aspects)"))], default="multi") self.settings.output = ConfigSelection(choices = [("iso", _("Create DVD-ISO")), ("dvd", _("Burn DVD"))]) self.settings.isopath = ConfigText(fixed_size = False, visible_width = 40) self.settings.dataformat = ConfigSelection(choices = [("iso9660_1", ("ISO9660 Level 1")), ("iso9660_4", ("ISO9660 version 2")), ("udf", ("UDF"))]) @@ -46,7 +47,6 @@ class DVDProject: self.settings.font_size = ConfigPixelvals() self.settings.space = ConfigPixelvals() self.settings.vmgm = ConfigFilename() - self.settings.autochapter = ConfigInteger(default = 0, limits = (0, 99)) self.filekeys = ["vmgm", "menubg", "menuaudio", "font_face", "isopath"] def addService(self, service): diff --git a/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py b/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py index 1ada9ce2..26f51e63 100644 --- a/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py +++ b/lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py @@ -6,10 +6,6 @@ class ConfigFixedText(ConfigText): def handleKey(self, key): pass -class ConfigActiveTrack(ConfigYesNo): - def __init__(self, default = True): - ConfigYesNo.__init__(self, default) - class DVDTitle: def __init__(self): self.properties = ConfigSubsection() @@ -20,6 +16,7 @@ class DVDTitle: self.DVBchannel = _("Channel") self.properties.aspect = ConfigSelection(choices = [("4:3", "4:3"), ("16:9", "16:9")]) self.properties.widescreen = ConfigSelection(choices = [("nopanscan", "nopanscan"), ("noletterbox", "noletterbox")]) + self.properties.autochapter = ConfigInteger(default = 0, limits = (0, 60)) self.properties.audiotracks = ConfigSubList() self.cuesheet = [ ] self.source = None @@ -139,19 +136,22 @@ class DVDTitle: self.estimatedDiskspace = usedsize self.length = accumulated_in / 90000 - def produceAutoChapter(self, minutes): - if len(self.chaptermarks) < 1: - chapterpts = self.cutlist[0] - while chapterpts < self.length*90000: - chapterpts += 90000 * 60 * minutes - self.chaptermarks.append(chapterpts) - def getChapterMarks(self): - timestamps = [] - for p in self.chaptermarks: + timestamps = [ ] + chapters = [ ] + minutes = self.properties.autochapter.getValue() + if len(self.chaptermarks) < 1 and minutes > 0: + chapterpts = 0 + while chapterpts < (self.length-60*minutes)*90000: + chapterpts += 90000 * 60 * minutes + chapters.append(chapterpts) + else: + chapters = self.chaptermarks + for p in chapters: h = p / (90000 * 3600) m = p % (90000 * 3600) / (90000 * 60) s = p % (90000 * 60) / 90000 ms = (p % 90000) / 90 timestamps.append("%d:%02d:%02d.%03d" % (h, m, s, ms)) + print "timestamps:", timestamps return timestamps \ No newline at end of file diff --git a/lib/python/Plugins/Extensions/DVDBurn/DreamboxDVDtemplate.ddvdp.xml b/lib/python/Plugins/Extensions/DVDBurn/DreamboxDVDtemplate.ddvdp.xml index 9a61214a..7d8de8ce 100644 --- a/lib/python/Plugins/Extensions/DVDBurn/DreamboxDVDtemplate.ddvdp.xml +++ b/lib/python/Plugins/Extensions/DVDBurn/DreamboxDVDtemplate.ddvdp.xml @@ -3,6 +3,7 @@ 0: - from DVDTitle import ConfigFixedText, ConfigActiveTrack + from DVDTitle import ConfigFixedText from TitleProperties import languageChoices - from Components.config import config, ConfigSubsection, ConfigSelection + from Components.config import config, ConfigSubsection, ConfigSubList, ConfigSelection, ConfigYesNo + self.t.properties.audiotracks = ConfigSubList() for x in range(n): i = audio.getTrackInfo(x) language = i.getLanguage() @@ -34,7 +35,7 @@ class TitleCutter(CutListEditor): language="nolang" print "[audiotrack] pid:", pid, "description:", description, "language:", language self.t.properties.audiotracks.append(ConfigSubsection()) - self.t.properties.audiotracks[-1].active = ConfigActiveTrack() + self.t.properties.audiotracks[-1].active = ConfigYesNo(default = True) self.t.properties.audiotracks[-1].format = ConfigFixedText(description) self.t.properties.audiotracks[-1].language = ConfigSelection(choices = languageChoices.choices, default=language) self.t.properties.audiotracks[-1].pid = ConfigFixedText(pid) diff --git a/lib/python/Plugins/Extensions/DVDBurn/TitleList.py b/lib/python/Plugins/Extensions/DVDBurn/TitleList.py index caec6198..416c14e9 100644 --- a/lib/python/Plugins/Extensions/DVDBurn/TitleList.py +++ b/lib/python/Plugins/Extensions/DVDBurn/TitleList.py @@ -188,10 +188,6 @@ class TitleList(Screen, HelpableScreen): job_manager.in_background = False self.session.openWithCallback(self.JobViewCB, JobView, job) else: - autochapter = self.project.settings.autochapter.getValue() - if autochapter > 0: - for title in self.project.titles: - title.produceAutoChapter(autochapter) job = Process.DVDJob(self.project) job_manager.AddJob(job) job_manager.in_background = False diff --git a/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py b/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py index 72071a5e..fdd331d4 100644 --- a/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py +++ b/lib/python/Plugins/Extensions/DVDBurn/TitleProperties.py @@ -25,9 +25,9 @@ class TitleProperties(Screen,ConfigListScreen): - - - + + + """ def __init__(self, session, parent, project, title_idx): @@ -46,6 +46,11 @@ class TitleProperties(Screen,ConfigListScreen): self.properties = project.titles[title_idx].properties ConfigListScreen.__init__(self, []) self.properties.crop = DVDTitle.ConfigFixedText("crop") + self.properties.autochapter.addNotifier(self.initConfigList) + self.properties.aspect.addNotifier(self.initConfigList) + for audiotrack in self.properties.audiotracks: + audiotrack.active.addNotifier(self.initConfigList) + self.initConfigList() self["setupActions"] = ActionMap(["SetupActions", "ColorActions"], @@ -58,7 +63,7 @@ class TitleProperties(Screen,ConfigListScreen): "ok": self.ok, }, -2) - def initConfigList(self): + def initConfigList(self, element=None): self.properties.position = ConfigInteger(default = self.title_idx+1, limits = (1, len(self.project.titles))) title = self.project.titles[self.title_idx] self.list = [] @@ -78,17 +83,19 @@ class TitleProperties(Screen,ConfigListScreen): else: self.list.append(getConfigListEntry("DVD " + "widescreen", self.properties.crop)) - self["config"].setList(self.list) - infotext = _("Available format variables") + ":\n$i=" + _("Track") + ", $t=" + _("Title") + ", $d=" + _("Description") + ", $l=" + _("length") + ", $c=" + _("chapters") + ",\n" + _("Record") + " $T=" + _("Begin time") + ", $Y=" + _("year") + ", $M=" + _("month") + ", $D=" + _("day") + ",\n$A=" + _("audio tracks") + ", $C=" + _("Channel") + ", $f=" + _("filename") self["info"] = StaticText(infotext) - chapters_count = len(title.chaptermarks) + if len(title.chaptermarks) == 0: + self.list.append(getConfigListEntry(_("Auto chapter split every ? minutes (0=never)"), self.properties.autochapter)) infotext = _("Title") + ': ' + title.DVBname + "\n" + _("Description") + ': ' + title.DVBdescr + "\n" + _("Channel") + ': ' + title.DVBchannel - if chapters_count: + chaptermarks = title.getChapterMarks() + chapters_count = len(chaptermarks) + if chapters_count >= 1: infotext += ', ' + str(chapters_count+1) + ' ' + _("chapters") + ' (' - infotext += ' / '.join(title.getChapterMarks()) + ')' + infotext += ' / '.join(chaptermarks) + ')' self["serviceinfo"].setText(infotext) + self["config"].setList(self.list) def editTitle(self): self.parent.editTitle() @@ -96,16 +103,6 @@ class TitleProperties(Screen,ConfigListScreen): def changedConfigList(self): self.initConfigList() - - def keyLeft(self): - ConfigListScreen.keyLeft(self) - if type(self["config"].getCurrent()[1]) in [DVDTitle.ConfigActiveTrack, ConfigSelection]: - self.initConfigList() - - def keyRight(self): - ConfigListScreen.keyRight(self) - if type(self["config"].getCurrent()[1]) in [DVDTitle.ConfigActiveTrack, ConfigSelection]: - self.initConfigList() def exit(self): self.applySettings()