def testWrite(self):
        fd, path = tempfile.mkstemp(suffix=u'.morituri.test.cue')
        os.close(fd)

        it = table.Table()

        t = table.Track(1)
        t.index(1, absolute=0, path=u'track01.wav', relative=0, counter=1)
        it.tracks.append(t)

        t = table.Track(2)
        t.index(0, absolute=1000, path=u'track01.wav',
            relative=1000, counter=1)
        t.index(1, absolute=2000, path=u'track02.wav', relative=0, counter=2)
        it.tracks.append(t)
        it.absolutize()
        it.leadout = 3000

        common.diffStrings(u"""REM DISCID 0C002802
REM COMMENT "morituri %s"
FILE "track01.wav" WAVE
  TRACK 01 AUDIO
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    INDEX 00 00:13:25
FILE "track02.wav" WAVE
    INDEX 01 00:00:00
""" % configure.version, it.cue())
        os.unlink(path)
Esempio n. 2
0
    def testWrite(self):
        fd, path = tempfile.mkstemp(suffix=u'.morituri.test.cue')
        os.close(fd)

        it = table.Table()

        t = table.Track(1)
        t.index(1, absolute=0, path=u'track01.wav', relative=0, counter=1)
        it.tracks.append(t)

        t = table.Track(2)
        t.index(0, absolute=1000, path=u'track01.wav',
            relative=1000, counter=1)
        t.index(1, absolute=2000, path=u'track02.wav', relative=0, counter=2)
        it.tracks.append(t)
        it.absolutize()
        it.leadout = 3000

        self.assertEquals(it.cue(), """REM DISCID 0C002802
REM COMMENT "Morituri"
FILE "track01.wav" WAVE
  TRACK 01 AUDIO
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    INDEX 00 00:13:25
FILE "track02.wav" WAVE
    INDEX 01 00:00:00
""")
        os.unlink(path)
Esempio n. 3
0
def main():
    log.init()

    
    runner = task.SyncRunner()

    checksums = []
    if len(sys.argv) > 1:
        path = sys.argv[1]
    else:
        fd, path = tempfile.mkstemp(suffix='.morituri.wav')
        os.close(fd)
        print 'storing track to %s' % path

    fakeTable = table.Table([
        table.Track( 1,      0,  15536),
    ])

    t = cdparanoia.ReadVerifyTrackTask(path, fakeTable, 1000, 3000, offset=0)


    runner.run(t)

    print 'runner done'

    if t.checksum is not None:
        print 'Checksums match'
    else:
        print 'Checksums do not match'
Esempio n. 4
0
 def __init__(self, path):
     """
     @type  path: unicode
     """
     assert type(path) is unicode, "%r is not unicode" % path
     self._path = path
     self._messages = []
     self.table = table.Table()
     self.logName = '<TocFile %08x>' % id(self)
Esempio n. 5
0
    def __init__(self, path):
        """
        @type  path: unicode
        """
        assert type(path) is unicode, "%r is not unicode" % path

        self._path = path
        self._rems = {}
        self._messages = []
        self.leadout = None
        self.table = table.Table()
Esempio n. 6
0
    def setUp(self):
        self.table = table.Table()

        for i in range(2):
            self.table.tracks.append(table.Track(i + 1, audio=True))

        offsets = [0, 15537]
        t = self.table.tracks
        for i, offset in enumerate(offsets):
            t[i].index(1, absolute=offset)
        t[1].index(0, offsets[1] - 200)
Esempio n. 7
0
    def __init__(self, taskk, session=None):
        self._buffer = ""  # accumulate characters
        self._lines = []  # accumulate lines
        self._state = 'START'
        self._frames = None  # number of frames
        self.track = 0  # which track are we analyzing?
        self._task = taskk
        self.tracks = 0  # count of tracks, relative to session
        self._session = session

        self.table = table.Table()  # the index table for the TOC
        self.version = None  # cdrdao version
Esempio n. 8
0
    def setUp(self):
        self.table = table.Table()

        for i in range(6):
            self.table.tracks.append(table.Track(i + 1, audio=True))

        offsets = [0, 15213, 32164, 46442, 63264, 80339]
        t = self.table.tracks
        for i, offset in enumerate(offsets):
            t[i].index(1, absolute=offset)

        self.failIf(self.table.hasTOC())

        self.table.leadout = 95312

        self.failUnless(self.table.hasTOC())
Esempio n. 9
0
    def setUp(self):
        self.table = table.Table()

        for i in range(12):
            self.table.tracks.append(table.Track(i + 1, audio=True))
        self.table.tracks.append(table.Track(13, audio=False))

        offsets = [
            0, 15537, 31691, 50866, 66466, 81202, 99409, 115920, 133093,
            149847, 161560, 177682, 207106
        ]
        t = self.table.tracks
        for i, offset in enumerate(offsets):
            t[i].index(1, absolute=offset)

        self.failIf(self.table.hasTOC())

        self.table.leadout = 210385

        self.failUnless(self.table.hasTOC())
        self.assertEquals(self.table.tracks[0].getPregap(), 0)
Esempio n. 10
0
    def setup(self, runner):
        """
        Do initial setup, like figuring out track lengths, and
        constructing the Table of Contents.
        """
        self.debug('setup image start')
        verify = ImageVerifyTask(self)
        self.debug('verifying image')
        runner.run(verify)
        self.debug('verified image')

        # calculate offset and length for each track

        # CD's have a standard lead-in time of 2 seconds;
        # checksums that use it should add it there
        offset = self.cue.table.tracks[0].getIndex(1).relative

        tracks = []

        for i in range(len(self.cue.table.tracks)):
            length = self.cue.getTrackLength(self.cue.table.tracks[i])
            if length == -1:
                length = verify.lengths[i + 1]
            t = table.Track(i + 1, audio=True)
            tracks.append(t)
            # FIXME: this probably only works for non-compliant .CUE files
            # where pregap is put at end of previous file
            t.index(1,
                    absolute=offset,
                    path=self.cue.table.tracks[i].getIndex(1).path,
                    relative=0)

            offset += length

        self.table = table.Table(tracks)
        self.table.leadout = offset
        self.debug('setup image done')