Files
whipper-gui/examples/readhtoa.py
Thomas Vander Stichele 96ac69a13d * examples/readdisc.py:
* examples/readhtoa.py:
	* examples/readtoc.py:
	  Rename IndexTable to Table.
2009-05-16 09:51:03 +00:00

74 lines
1.6 KiB
Python

# -*- Mode: Python -*-
# vi:si:et:sw=4:sts=4:ts=4
import os
import sys
import optparse
import tempfile
import shutil
from morituri.common import task, checksum, log
from morituri.program import cdrdao, cdparanoia
import gobject
gobject.threads_init()
def main():
log.init()
parser = optparse.OptionParser()
default = 0
parser.add_option('-o', '--offset',
action="store", dest="offset",
help="sample offset (defaults to %d)" % default,
default=default)
options, args = parser.parse_args(sys.argv[1:])
runner = task.SyncRunner()
# first do a simple TOC scan
t = cdrdao.ReadTOCTask()
runner.run(t)
toc = t.table
offset = t.table.tracks[0].getIndex(1).absolute
if offset < 150:
print 'Disc is unlikely to have Hidden Track One Audio.'
else:
print 'Disc seems to have a %d frame HTOA.' % offset
# now do a more extensive scan
t = cdrdao.ReadTableTask()
runner.run(t)
# now check if we have a hidden track one audio
track = t.table.tracks[0]
try:
index = track.getIndex(0)
except KeyError:
print 'No Hidden Track One Audio found.'
return
start = index.absolute
stop = track.getIndex(1).absolute
print 'Found Hidden Track One Audio from frame %d to %d' % (start, stop)
# rip it
riptask = cdparanoia.ReadVerifyTrackTask('track00.wav', t.table,
start, stop - 1,
offset=int(options.offset))
runner.run(riptask)
print 'runner done'
if riptask.checksum is not None:
print 'Checksums match'
else:
print 'Checksums did not match'
main()