Add and use FastAccurateRipChecksumTask

This commit is contained in:
Merlijn Wajer
2015-12-11 15:27:35 +01:00
parent d1f0165cf3
commit 9ae279c811
2 changed files with 77 additions and 0 deletions

View File

@@ -32,6 +32,10 @@ from morituri.common import log
from morituri.common import task
from morituri.extern.task import gstreamer
from morituri.extern.task import task as etask
from morituri.program.arc import accuraterip_checksum
# checksums are not CRC's. a CRC is a specific type of checksum.
@@ -268,6 +272,29 @@ class CRC32Task(ChecksumTask):
return zlib.crc32(buf, checksum)
class FastAccurateRipChecksumTask(etask.Task):
description = 'Calculating (Fast) AccurateRip checksum'
def __init__(self, path, trackNumber, trackCount, wave, v2=False):
self.path = path
self.trackNumber = trackNumber
self.trackCount = trackCount
self._wave = wave
self._v2 = v2
self.checksum = None
def start(self, runner):
etask.Task.start(self, runner)
self.schedule(0.0, self._arc)
def _arc(self):
arc = accuraterip_checksum(self.path, self.trackNumber, self.trackCount,
self._wave, self._v2)
self.checksum = arc
self.stop()
class AccurateRipChecksumTask(ChecksumTask):
"""
I implement the AccurateRip checksum.