From 9b1fc33003f8d6db9f60e50db6f851c520405efb Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Wed, 6 May 2009 08:55:28 +0000 Subject: [PATCH] * morituri/image/table.py: * morituri/image/toc.py: Delete old code. --- ChangeLog | 6 ++ morituri/image/table.py | 166 ---------------------------------------- morituri/image/toc.py | 46 ----------- 3 files changed, 6 insertions(+), 212 deletions(-) diff --git a/ChangeLog b/ChangeLog index db89e54..23dc1b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-05-06 Thomas Vander Stichele + + * morituri/image/table.py: + * morituri/image/toc.py: + Delete old code. + 2009-05-06 Thomas Vander Stichele * morituri/image/toc.py: diff --git a/morituri/image/table.py b/morituri/image/table.py index d798751..e4e8dfb 100644 --- a/morituri/image/table.py +++ b/morituri/image/table.py @@ -31,172 +31,6 @@ import gst from morituri.common import task, checksum, common, log -from morituri.test import common as tcommon - -class DeleteMeTrack: - """ - I represent a track entry in a Table of Contents. - - @ivar number: track number (1-based) - @type number: int - @ivar start: start of track, in CD frames (0-based) - @type start: int - @ivar end: end of track, in CD frames (0-based) - @type end: int - @ivar audio: whether the track is audio - @type audio: bool - """ - - number = None - start = None - end = None - audio = True - - def __repr__(self): - return '' % self.number - - def __init__(self, number, start, end, audio=True): - self.number = number - self.start = start - self.end = end - self.audio = audio - -class DeleteMeTable: - """ - I represent the Table of Contents of a CD. - - @ivar tracks: tracks on this CD - @type tracks: list of L{Track} - """ - - tracks = None # list of Track - - def __init__(self, tracks=None): - if not tracks: - tracks = [] - - self.tracks = tracks - - def getTrackStart(self, number): - """ - @param number: the track number, 1-based - @type number: int - - @returns: the start of the given track number, in CD frames - @rtype: int - """ - return self.tracks[number - 1].start - - def getTrackEnd(self, number): - """ - @param number: the track number, 1-based - @type number: int - - @returns: the end of the given track number, in CD frames - @rtype: int - """ - return self.tracks[number - 1].end - - def getTrackLength(self, number): - """ - @param number: the track number, 1-based - @type number: int - - @returns: the length of the given track number, in CD frames - @rtype: int - """ - track = self.tracks[number - 1] - return track.end - track.start + 1 - - def getAudioTracks(self): - """ - @returns: the number of audio tracks on the CD - @rtype: int - """ - return len([t for t in self.tracks if t.audio]) - - def _cddbSum(self, i): - ret = 0 - while i > 0: - ret += (i % 10) - i /= 10 - - return ret - - def getCDDBDiscId(self): - """ - Calculate the CDDB disc ID. - - @rtype: str - @returns: the 8-character hexadecimal disc ID - """ - # cddb disc id takes into account data tracks - # last byte is the number of tracks on the CD - n = 0 - - for track in self.tracks: - # CD's have a standard lead-in time of 2 seconds - # which gets added for CDDB disc id's - offset = self.getTrackStart(track.number) + \ - 2 * checksum.FRAMES_PER_SECOND - seconds = offset / checksum.FRAMES_PER_SECOND - n += self._cddbSum(seconds) - - last = self.tracks[-1] - leadout = self.getTrackEnd(last.number) - frameLength = leadout - self.getTrackStart(1) - t = frameLength / checksum.FRAMES_PER_SECOND - - value = (n % 0xff) << 24 | t << 8 | len(self.tracks) - - return "%08x" % value - - def getAccurateRipIds(self): - """ - Calculate the two AccurateRip ID's. - - @returns: the two 8-character hexadecimal disc ID's - @rtype: tuple of (str, str) - """ - # AccurateRip does not take into account data tracks, - # but does count the data track to determine the leadout offset - discId1 = 0 - discId2 = 0 - - for track in self.tracks: - if not track.audio: - continue - offset = self.getTrackStart(track.number) - discId1 += offset - discId2 += (offset or 1) * track.number - - # also add end values, where leadout offset is one past the end - # of the last track - last = self.tracks[-1] - offset = self.getTrackEnd(last.number) + 1 - discId1 += offset - discId2 += offset * (self.getAudioTracks() + 1) - - discId1 &= 0xffffffff - discId2 &= 0xffffffff - - return ("%08x" % discId1, "%08x" % discId2) - - def getAccurateRipURL(self): - """ - Return the full AccurateRip URL. - - @returns: the AccurateRip URL - @rtype: str - """ - discId1, discId2 = self.getAccurateRipIds() - - return "http://www.accuraterip.com/accuraterip/" \ - "%s/%s/%s/dBAR-%.3d-%s-%s-%s.bin" % ( - discId1[-1], discId1[-2], discId1[-3], - len(self.tracks), discId1, discId2, self.getCDDBDiscId()) - - class ITTrack: """ I represent a track entry in an IndexTable. diff --git a/morituri/image/toc.py b/morituri/image/toc.py index 6a9592e..42e46cc 100644 --- a/morituri/image/toc.py +++ b/morituri/image/toc.py @@ -256,49 +256,3 @@ class File: def __repr__(self): return '' % (self.path, ) - - -# FIXME: add type ? separate AUDIO from others -class DeleteMeTrack: - """ - I represent a track in a cue file. - I have index points. - Each index point is linked to an audio file. - - @ivar number: track number - @type number: int - """ - - def __init__(self, number): - if number < 1 or number > 99: - raise IndexError, "Track number must be from 1 to 99" - - self.number = number - self._indexes = {} # index number -> (sector, File) - - self.title = None - self.performer = None - - def __repr__(self): - return '' % (self.number, - len(self._indexes.keys())) - - def index(self, number, sector, file): - """ - Add the given index to the current track. - - @type file: L{File} - """ - if number in self._indexes.keys(): - raise KeyError, "index %d already in track %d" % ( - number, self.number) - if number < 0 or number > 99: - raise IndexError, "Index number must be from 0 to 99" - - self._indexes[number] = (sector, file) - - def getIndex(self, number): - """ - @rtype: tuple of (int, File) - """ - return self._indexes[number]