X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/bac5100a21092134a2582b33b8b490f9567dc16f..15171632716c0734526eefc55e3d0601be177b45:/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py diff --git a/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py b/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py index 32666af8..ce16259e 100644 --- a/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py +++ b/lib/python/Plugins/Extensions/DVDBurn/DVDToolbox.py @@ -9,6 +9,7 @@ from Components.Task import Task, Job, job_manager, Condition from Components.ScrollLabel import ScrollLabel from Components.Harddisk import harddiskmanager from Components.Console import Console +from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier class DVDToolbox(Screen): skin = """ @@ -49,11 +50,12 @@ class DVDToolbox(Screen): "green": self.update, "yellow": self.format, #"blue": self.eject, - "cancel": self.close, + "cancel": self.exit, "pageUp": self.pageUp, "pageDown": self.pageDown }) self.update() + hotplugNotifier.append(self.update) def pageUp(self): self["details"].pageUp() @@ -61,7 +63,7 @@ class DVDToolbox(Screen): def pageDown(self): self["details"].pageDown() - def update(self): + def update(self, dev="", action=""): self["space_label"].text = _("Please wait... Loading list...") self["info"].text = "" self["details"].setText("") @@ -86,8 +88,8 @@ class DVDToolbox(Screen): mediatype = "" for line in mediuminfo.splitlines(): if line.find("Mounted Media:") > -1: - mediatype = line.rsplit(',',1)[1][1:-1] - if mediatype.find("RW") > 0: + mediatype = line.rsplit(',',1)[1][1:] + if mediatype.find("RW") > 0 or mediatype.find("RAM") > 0: self.formattable = True else: self.formattable = False @@ -115,7 +117,7 @@ class DVDToolbox(Screen): if used: used = capacity-used print "[free blocks] capacity=%d, used=%d" % (capacity, used) - infotext += line + infotext += line+'\n' self["details"].setText(infotext) if self.formattable: self["key_yellow"].text = _("Format") @@ -141,6 +143,7 @@ class DVDToolbox(Screen): def exit(self): del self.Console + hotplugNotifier.remove(self.update) self.close() class DVDformatJob(Job): @@ -150,7 +153,7 @@ class DVDformatJob(Job): DVDformatTask(self) def retry(self): - self.tasks[0].args += [ "-force" ] + self.tasks[0].args += self.tasks[0].retryargs Job.retry(self) class DVDformatTaskPostcondition(Condition): @@ -174,6 +177,7 @@ class DVDformatTask(Task): self.setTool("/bin/dvd+rw-format") self.args += [ "/dev/" + harddiskmanager.getCD() ] self.end = 1100 + self.retryargs = [ ] def prepare(self): self.error = None @@ -181,7 +185,10 @@ class DVDformatTask(Task): def processOutputLine(self, line): if line.startswith("- media is already formatted"): self.error = self.ERROR_ALREADYFORMATTED - self.force = True + self.retryargs = [ "-force" ] + if line.startswith("- media is not blank") or line.startswith(" -format=full to perform full (lengthy) reformat;"): + self.error = self.ERROR_ALREADYFORMATTED + self.retryargs = [ "-blank" ] if line.startswith(":-( mounted media doesn't appear to be"): self.error = self.ERROR_NOTWRITEABLE