additional service information for DVD menu and fixes
authorAndreas Frisch <andreas.frisch@multimedia-labs.de>
Fri, 5 Sep 2008 21:32:12 +0000 (21:32 +0000)
committerAndreas Frisch <andreas.frisch@multimedia-labs.de>
Fri, 5 Sep 2008 21:32:12 +0000 (21:32 +0000)
lib/python/Plugins/Extensions/DVDBurn/DVDTitle.py
lib/python/Plugins/Extensions/DVDBurn/Process.py
lib/python/Plugins/Extensions/DVDBurn/ProjectSettings.py
lib/python/Plugins/Extensions/DVDBurn/TitleList.py
lib/python/Plugins/Extensions/DVDBurn/keymap.xml
lib/python/Plugins/Extensions/DVDBurn/template/DreamboxDVDtemplate.ddvdp.xml
lib/python/Screens/LocationBox.py
lib/python/Tools/NumericalTextInput.py

index dad16e7e004f537fbe9dcfb87c2d54401a9ed19e..40aefafba552bb06b613689663fb2f4ae2f0ef99 100644 (file)
@@ -9,15 +9,23 @@ class DVDTitle:
                self.inputfile = ""
                self.cutlist = [ ]
                self.chaptermarks = [ ]
+               self.timeCreate = None
 
        def addService(self, service):
                from os import path
                from enigma import eServiceCenter, iServiceInformation
+               from ServiceReference import ServiceReference
+               from time import localtime, time
                self.source = service
                serviceHandler = eServiceCenter.getInstance()
                info = serviceHandler.info(service)
                self.descr = info and " " + info.getInfoString(service, iServiceInformation.sDescription) or ""
+               sTimeCreate = info.getInfo(service, iServiceInformation.sTimeCreate)
+               if sTimeCreate > 1:
+                       self.timeCreate = localtime(sTimeCreate)
+               serviceref = ServiceReference(info.getInfoString(service, iServiceInformation.sServiceref))
                self.name = info and info.getName(service) or "Title" + t.descr
+               self.channel = serviceref.getServiceName()
                self.inputfile = service.getPath()
                self.filesize = path.getsize(self.inputfile)
                self.estimatedDiskspace = self.filesize
index 072085ef6939994db8fdbc4ad928cb25afaab3ae..c42211542bf19b334e0685b800a2ae96745de922 100644 (file)
@@ -296,7 +296,7 @@ class PreviewTask(Task):
                if self.job.menupreview:
                        self.waitAndOpenPlayer()
                else:
-                       self.job.project.session.openWithCallback(self.previewCB, MessageBox, _("Do you want to preview this project before burning?"), timeout = 60, default = False)
+                       self.job.project.session.openWithCallback(self.previewCB, MessageBox, _("Do you want to preview this DVD before burning?"), timeout = 60, default = False)
        
        def previewCB(self, answer):
                if answer == True:
@@ -308,7 +308,7 @@ class PreviewTask(Task):
                if self.job.menupreview:
                        self.closedCB(True)
                else:
-                       self.job.project.session.openWithCallback(self.closedCB, MessageBox, _("Do you want to burn this project to DVD medium?") )
+                       self.job.project.session.openWithCallback(self.closedCB, MessageBox, _("Do you want to burn this collection to DVD medium?") )
 
        def closedCB(self, answer):
                if answer == True:
@@ -341,24 +341,31 @@ def getTitlesPerMenu(nr_titles):
        return titles_per_menu
 
 def formatTitle(template, title, track):
-       import re
+       print template
        template = template.replace("$i", str(track))
+       print template
        template = template.replace("$t", title.name)
+       print template
        template = template.replace("$d", title.descr)
+       print template
        template = template.replace("$c", str(len(title.chaptermarks)+1))
+       print template
        template = template.replace("$f", title.inputfile)
+       print template
+       template = template.replace("$C", title.channel)
+       print template
        l = title.length
        lengthstring = "%d:%02d:%02d" % (l/3600, l%3600/60, l%60)
        template = template.replace("$l", lengthstring)
-       res = re.search("(?:/.*?).*/(?P<year>\d{4})(?P<month>\d{2})(?P<day>\d{2}).(?P<hour>\d{2})(?P<minute>\d{2}).-.*.?.ts", title.inputfile)
-       if res:
-               template = template.replace("$Y", res.group("year"))
-               template = template.replace("$M", res.group("month"))
-               template = template.replace("$D", res.group("day"))
-               template = template.replace("$h", res.group("hour"))
-               template = template.replace("$m", res.group("minute"))
+       print template
+       if title.timeCreate:
+               template = template.replace("$Y", str(title.timeCreate[0]))
+               template = template.replace("$M", str(title.timeCreate[1]))
+               template = template.replace("$D", str(title.timeCreate[2]))
+               timestring = "%d:%02d" % (title.timeCreate[3], title.timeCreate[4])
+               template = template.replace("$T", timestring)
        else:
-               template = template.replace("$Y", "").replace("$M", "").replace("$D", "").replace("$h", "").replace("$m", "")
+               template = template.replace("$Y", "").replace("$M", "").replace("$D", "").replace("$T", "")
        return template.decode("utf-8")
 
 def CreateMenus(job):
index 3cf7f9d098ad7146ae88322e232d0359a9dd46de..ba78e5e17e11901c0ea2f709c250b809e8d2f09f 100644 (file)
@@ -93,8 +93,8 @@ class ProjectSettings(Screen,ConfigListScreen):
                    <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
                    <widget source="key_yellow" render="Label" position="280,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" transparent="1" />
                    <widget source="key_blue" render="Label" position="420,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" transparent="1" />
-                   <widget name="config" position="20,50" size="540,276" scrollbarMode="showOnDemand" />
-                   <widget source="info" render="Label" position="20,330" size="520,110" font="Regular;20" />
+                   <widget name="config" position="10,50" size="540,276" scrollbarMode="showOnDemand" />
+                   <widget source="info" render="Label" position="20,350" size="520,90" font="Regular;16" />
                </screen>"""
 
        def __init__(self, session, project = None):
@@ -106,24 +106,24 @@ class ProjectSettings(Screen,ConfigListScreen):
                self["key_yellow"] = StaticText(_("Load"))
                self["key_blue"] = StaticText(_("Save"))
                
-               infotext = _("Available format variables") + ":\n$i=" + _("Track") + ", $t=" + _("Title") + ", $d=" + _("Description") + ", $l=" + _("length") + ", $c=" + _("chapters") + "\n" + _("Record") + " $Y=" + _("year") + ", $M=" + _("month") + ", $D=" + _("day") + ", $h=" + _("hour") + ", $m=" + _("minute") + ", $f=" + _("filename")
+               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%C=" + _("Channel") + ", %f=" + _("filename")
                self["info"] = StaticText(infotext)
 
                self.settings = project.settings
                self.list = []
-               self.list.append(getConfigListEntry("Collection name", self.settings.name))
-               self.list.append(getConfigListEntry("Authoring mode", self.settings.authormode))
-               self.list.append(getConfigListEntry("Menu background image", self.settings.menubg))
-               self.list.append(getConfigListEntry("Menu title format", self.settings.titleformat))
-               self.list.append(getConfigListEntry("Menu subtitle format", self.settings.subtitleformat))
-               self.list.append(getConfigListEntry("Menu headline color", self.settings.color_headline))
-               self.list.append(getConfigListEntry("Menu plain text color", self.settings.color_button))
-               self.list.append(getConfigListEntry("Menu highlighted button color", self.settings.color_highlight))
-               self.list.append(getConfigListEntry("Menu font face", self.settings.font_face))
-               self.list.append(getConfigListEntry("Font size (headline, titles, subtitles)", self.settings.font_size))
-               self.list.append(getConfigListEntry("Menu spaces (top, between rows, left)", self.settings.space))
-               self.list.append(getConfigListEntry("Menu audio", self.settings.menuaudio))
-               self.list.append(getConfigListEntry("VMGM (intro trailer)", self.settings.vmgm))
+               self.list.append(getConfigListEntry(_("Collection name"), self.settings.name))
+               self.list.append(getConfigListEntry(_("Authoring mode"), self.settings.authormode))
+               self.list.append(getConfigListEntry(_("Menu")+' '+_("background image"), self.settings.menubg))
+               self.list.append(getConfigListEntry(_("Menu")+' '+_("Title"), self.settings.titleformat))
+               self.list.append(getConfigListEntry(_("Menu")+' '+_("Subtitles"), self.settings.subtitleformat))
+               self.list.append(getConfigListEntry(_("Menu")+' '+_("headline")+' '+_("color"), self.settings.color_headline))
+               self.list.append(getConfigListEntry(_("Menu")+' '+_("text")+' '+_("color"), self.settings.color_button))
+               self.list.append(getConfigListEntry(_("Menu")+' '+_("highlighted button")+' '+_("color"), self.settings.color_highlight))
+               self.list.append(getConfigListEntry(_("Menu")+' '+_("font face"), self.settings.font_face))
+               self.list.append(getConfigListEntry(_("Font size")+' ('+_("headline")+', '+_("Title")+', '+_("Subtitles")+')', self.settings.font_size))
+               self.list.append(getConfigListEntry(_("Menu")+' '+_("spaces (top, between rows, left)"), self.settings.space))
+               self.list.append(getConfigListEntry(_("Menu")+' '+_("Audio"), self.settings.menuaudio))
+               self.list.append(getConfigListEntry(_("VMGM (intro trailer)"), self.settings.vmgm))
                ConfigListScreen.__init__(self, self.list)
                
                self.keydict = {}
index 6edb09068b40ca86bb9135ac952b7b03a637ce13..685f4b3b6b73ebe02463e17d73c85078603be4f9 100644 (file)
@@ -41,7 +41,7 @@ class TitleList(Screen):
                                "addTitle": (self.addTitle, _("Add a new title"), _("Add title")),
                                "editTitle": (self.editTitle, _("Edit chapters of current title"), _("Edit title")),
                                "removeCurrentTitle": (self.removeCurrentTitle, _("Remove currently selected title"), _("Remove title")),
-                               "settings": (self.settings, _("Project settings"), _("Settings")),
+                               "settings": (self.settings, _("Collection settings"), _("Settings")),
                                "burnProject": (self.burnProject, _("Burn DVD"), _("Burn DVD")),
                        })
 
@@ -55,9 +55,9 @@ class TitleList(Screen):
                                "cancel": self.leave
                        })
 
-               self["key_red"] = StaticText(_("Add title"))
-               self["key_green"] = StaticText(_("Edit title"))
-               self["key_yellow"] = StaticText(_("Remove title"))
+               self["key_red"] = StaticText(_("Remove title"))
+               self["key_green"] = StaticText(_("Add title"))
+               self["key_yellow"] = StaticText(_("Edit title"))
                self["key_blue"] = StaticText(_("Settings"))
 
                self["title_label"] = StaticText()
@@ -81,12 +81,12 @@ class TitleList(Screen):
                
        def showMenu(self):
                menu = []
+               menu.append((_("Burn DVD"), "burn"));
+               menu.append((_("Preview menu"), "previewMenu"));
                menu.append((_("Collection settings"), "settings"));
                menu.append((_("Add a new title"), "addtitle"));
                menu.append((_("Remove title"), "removetitle"));
                menu.append((_("Edit chapters of current title"), "edittitle"));
-               menu.append((_("Preview menu"), "previewMenu"));
-               menu.append((_("Burn DVD"), "burn"));
                menu.append((_("Exit"), "exit"));
                self.session.openWithCallback(self.menuCallback, ChoiceBox, title="", list=menu)
 
index 7b7ea31c83c2e34869d483b39a11ba81c2d159c5..2727e2b84852cfecfd0880ad97791f60ff823276 100644 (file)
@@ -1,9 +1,9 @@
 <keymap>
        <map context="DVDTitleList">
-               <key id="KEY_RED" mapto="addTitle" flags="m" />
-               <key id="KEY_GREEN" mapto="editTitle" flags="m" />
+               <key id="KEY_RED" mapto="removeCurrentTitle" flags="m" />
+               <key id="KEY_GREEN" mapto="addTitle" flags="m" />
+               <key id="KEY_YELLOW" mapto="editTitle" flags="m" />
                <key id="KEY_BLUE" mapto="settings" flags="m" />
-               <key id="KEY_YELLOW" mapto="removeCurrentTitle" flags="m" />
                <key id="KEY_RECORD" mapto="burnProject" flags="m" />
                <key id="KEY_0" mapto="burnProject" flags="m" />
                <key id="KEY_VIDEO" mapto="addTitle" flags="m" />
index 5738f3a428e13d7579e77960c93642dc9802275c..b839ad8ab51e0e3c1c5ba6b335e5389f8bddc40f 100644 (file)
@@ -4,7 +4,7 @@
                name="Dreambox DVD record"
                authormode="linked_nomenu"
                titleformat="$i. $t"
-               subtitleformat="$Y-$M-$D, $h:$m, $d ($c chapters)"
+               subtitleformat="$D.$M.$Y, $T $C, $d ($c chapters)"
                vmgm="/usr/share/enigma2/dreamvmgm.mpg"
                menubg="/usr/share/enigma2/dreamdvd_boat.jpg"
                menuaudio="/usr/share/enigma2/silence.mp2"
index e41601a94147e5b23e04bfe7e14c533ea37e4f65..13315ffc45aab5a0aac3227121cb3af9aa02a188 100644 (file)
@@ -125,7 +125,7 @@ class LocationBox(Screen, NumericalTextInput, HelpableScreen):
                                "up": self.up,
                                "down": self.down,
                                "ok": (self.ok, _("select")),
-                               "back": (self.cancel, _("cancel")),
+                               "back": (self.cancel, _("Cancel")),
                        }, -2)
 
                self["ColorActions"] = LocationBoxActionMap(self, "ColorActions",
index 696b8e209b9c910d6f3eed22e025044555aae6e0..27493249979c0a854af35ed44a3deda625982a94 100644 (file)
@@ -10,40 +10,40 @@ class NumericalTextInput:
                self.nextFunction=nextFunc
                
                if self.lang == 'de_DE':
-                       self.mapping.append (u".,?'\"0-()@/:_") # 0
+                       self.mapping.append (u".,?'\"0-()@/:_$") # 0
                        self.mapping.append (u" 1") # 1
-                       self.mapping.append (u"aäbc2AÄBC") # 2
+                       self.mapping.append (u"a�bc2A�BC") # 2
                        self.mapping.append (u"def3DEF") # 3
                        self.mapping.append (u"ghi4GHI") # 4
                        self.mapping.append (u"jkl5JKL") # 5
-                       self.mapping.append (u"mnoö6MNOÖ") # 6
-                       self.mapping.append (u"pqrsß7PQRSß") # 7
-                       self.mapping.append (u"tuüv8TUÜV") # 8
+                       self.mapping.append (u"mno�6MNO�") # 6
+                       self.mapping.append (u"pqrs�7PQRS�") # 7
+                       self.mapping.append (u"tu�v8TU�V") # 8
                        self.mapping.append (u"wxyz9WXYZ") # 9
                elif self.lang == 'es_ES':
-                       self.mapping.append (u".,?'\"0-()@/:_") # 0
+                       self.mapping.append (u".,?'\"0-()@/:_$") # 0
                        self.mapping.append (u" 1") # 1
-                       self.mapping.append (u"abcáà2ABCÁÀ") # 2
-                       self.mapping.append (u"deéèf3DEFÉÈ") # 3
-                       self.mapping.append (u"ghiíì4GHIÍÌ") # 4
+                       self.mapping.append (u"abc��2ABC��") # 2
+                       self.mapping.append (u"de��f3DEF��") # 3
+                       self.mapping.append (u"ghi��4GHI��") # 4
                        self.mapping.append (u"jkl5JKL") # 5
-                       self.mapping.append (u"mnñoóò6MNÑOÓÒ") # 6
+                       self.mapping.append (u"mn�o��6MN�O��") # 6
                        self.mapping.append (u"pqrs7PQRS") # 7
-                       self.mapping.append (u"tuvúù8TUVÚÙ") # 8
+                       self.mapping.append (u"tuv��8TUV��") # 8
                        self.mapping.append (u"wxyz9WXYZ") # 9
                if self.lang in ['sv_SE', 'fi_FI']:
-                       self.mapping.append (u".,?'\"0-()@/:_") # 0
+                       self.mapping.append (u".,?'\"0-()@/:_$") # 0
                        self.mapping.append (u" 1") # 1
-                       self.mapping.append (u"abcåä2ABCÅÄ") # 2
-                       self.mapping.append (u"defé3DEFÉ") # 3
+                       self.mapping.append (u"abc��2ABC��") # 2
+                       self.mapping.append (u"def�3DEF�") # 3
                        self.mapping.append (u"ghi4GHI") # 4
                        self.mapping.append (u"jkl5JKL") # 5
-                       self.mapping.append (u"mnoö6MNOÖ") # 6
+                       self.mapping.append (u"mno�6MNO�") # 6
                        self.mapping.append (u"pqrs7PQRS") # 7
                        self.mapping.append (u"tuv8TUV") # 8
                        self.mapping.append (u"wxyz9WXYZ") # 9
                else:
-                       self.mapping.append (u".,?'\"0-()@/:_") # 0
+                       self.mapping.append (u".,?'\"0-()@/:_$") # 0
                        self.mapping.append (u" 1") # 1
                        self.mapping.append (u"abc2ABC") # 2
                        self.mapping.append (u"def3DEF") # 3