* morituri/common/task.py:
* morituri/image/image.py: Move MultiTask to the task module.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
2009-04-20 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* morituri/common/task.py:
|
||||
* morituri/image/image.py:
|
||||
Move MultiTask to the task module.
|
||||
|
||||
2009-04-20 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* morituri/common/checksum.py:
|
||||
|
||||
@@ -111,6 +111,56 @@ class DummyTask(Task):
|
||||
|
||||
self.runner.schedule(1.0, self._wind)
|
||||
|
||||
class MultiTask(Task):
|
||||
"""
|
||||
I perform multiple tasks.
|
||||
I track progress of each individual task, going back to 0 for each task.
|
||||
"""
|
||||
|
||||
description = 'Doing various tasks'
|
||||
tasks = None
|
||||
|
||||
def addTask(self, task):
|
||||
if self.tasks is None:
|
||||
self.tasks = []
|
||||
self.tasks.append(task)
|
||||
|
||||
def start(self, runner):
|
||||
Task.start(self, runner)
|
||||
|
||||
# initialize task tracking
|
||||
self._task = 0
|
||||
self.__tasks = self.tasks[:]
|
||||
self._generic = self.description
|
||||
|
||||
self._next()
|
||||
|
||||
def _next(self):
|
||||
# start next task
|
||||
self.progress = 0.0 # reset progress for each task
|
||||
task = self.__tasks[0]
|
||||
del self.__tasks[0]
|
||||
self._task += 1
|
||||
self.description = "%s (%d of %d) ..." % (
|
||||
self._generic, self._task, len(self.tasks))
|
||||
task.addListener(self)
|
||||
task.start(self.runner)
|
||||
|
||||
### listener methods
|
||||
def started(self, task):
|
||||
pass
|
||||
|
||||
def progressed(self, task, value):
|
||||
self.setProgress(value)
|
||||
|
||||
def stopped(self, task):
|
||||
if not self.__tasks:
|
||||
self.stop()
|
||||
return
|
||||
|
||||
# pick another
|
||||
self._next()
|
||||
|
||||
|
||||
class TaskRunner:
|
||||
"""
|
||||
|
||||
@@ -99,58 +99,8 @@ class Image:
|
||||
|
||||
self.toc = toc.TOC(tracks)
|
||||
|
||||
class MultiTask(task.Task):
|
||||
"""
|
||||
I perform multiple tasks.
|
||||
I track progress of each individual task, going back to 0 for each task.
|
||||
"""
|
||||
|
||||
description = 'Doing various tasks'
|
||||
tasks = None
|
||||
|
||||
def addTask(self, task):
|
||||
if self.tasks is None:
|
||||
self.tasks = []
|
||||
self.tasks.append(task)
|
||||
|
||||
def start(self, runner):
|
||||
task.Task.start(self, runner)
|
||||
|
||||
# initialize task tracking
|
||||
self._task = 0
|
||||
self.__tasks = self.tasks[:]
|
||||
self._generic = self.description
|
||||
|
||||
self._next()
|
||||
|
||||
def _next(self):
|
||||
# start next task
|
||||
self.progress = 0.0 # reset progress for each task
|
||||
task = self.__tasks[0]
|
||||
del self.__tasks[0]
|
||||
self._task += 1
|
||||
self.description = "%s (%d of %d) ..." % (
|
||||
self._generic, self._task, len(self.tasks))
|
||||
task.addListener(self)
|
||||
task.start(self.runner)
|
||||
|
||||
### listener methods
|
||||
def started(self, task):
|
||||
pass
|
||||
|
||||
def progressed(self, task, value):
|
||||
self.setProgress(value)
|
||||
|
||||
def stopped(self, task):
|
||||
if not self.__tasks:
|
||||
self.stop()
|
||||
return
|
||||
|
||||
# pick another
|
||||
self._next()
|
||||
|
||||
|
||||
class AccurateRipChecksumTask(MultiTask):
|
||||
class AccurateRipChecksumTask(task.MultiTask):
|
||||
"""
|
||||
I calculate the AccurateRip checksums of all tracks.
|
||||
"""
|
||||
@@ -177,7 +127,7 @@ class AccurateRipChecksumTask(MultiTask):
|
||||
|
||||
def stop(self):
|
||||
self.checksums = [t.checksum for t in self.tasks]
|
||||
MultiTask.stop(self)
|
||||
task.MultiTask.stop(self)
|
||||
|
||||
class AudioLengthTask(task.Task):
|
||||
"""
|
||||
@@ -221,7 +171,7 @@ class AudioLengthTask(task.Task):
|
||||
|
||||
self.stop()
|
||||
|
||||
class ImageVerifyTask(MultiTask):
|
||||
class ImageVerifyTask(task.MultiTask):
|
||||
"""
|
||||
I verify a disk image and get the necessary track lengths.
|
||||
"""
|
||||
@@ -256,7 +206,7 @@ class ImageVerifyTask(MultiTask):
|
||||
end = taskk.length / checksum.SAMPLES_PER_FRAME
|
||||
self.lengths[trackIndex] = end - offset
|
||||
|
||||
MultiTask.stop(self)
|
||||
task.MultiTask.stop(self)
|
||||
|
||||
# FIXME: move this method to a different module ?
|
||||
def getAccurateRipResponses(data):
|
||||
|
||||
Reference in New Issue
Block a user