Fix a subtle bug in our CDDB disc id calculation.
The length of the audio should be calculated as the delta
between leadout and start already converted (and truncated)
to seconds.
* morituri/test/bloc.cue:
* morituri/test/test_image_toc.py:
Fix up tests for this.
Calculate the leadout from the sum of the track lengths.
* morituri/test/breeders.cue:
* morituri/test/cure.cue:
Adapt expected results for DISCID.
* morituri/image/table.py:
Add an assert for hasTOC() when doing .cue()
* morituri/test/test_image_toc.py:
* morituri/test/test_image_cue.py:
absolutize before cue()
Only add DISCID if our table is a TOC (which it isn't
with our current .toc file parsing)
* morituri/test/test_image_cue.py:
* morituri/test/test_image_toc.py:
Fix up tests; testsuite passes again.
Add CDText writing to .cue() method.
* morituri/image/toc.py:
Add CDText parsing.
* morituri/test/test_image_toc.py:
* morituri/test/breeders.cue (added):
Add a test for cue'ing the breeders' toc.
* morituri/image/toc.py:
Add parsing of ISRC codes.
Add first part of CDTEXT stuff.
* morituri/test/test_image_toc.py:
Add test for converting .toc to .cue
* morituri/test/cure.cue
Add reference for converted cure.toc
* morituri/test/test_image_toc.py:
* morituri/test/test_program_cdrdao.py:
After careful vetting, fix up the expected values after toc parsing.
Fix (untested) INDEX handling. Fix handling of START.
* morituri/test/test_image_table.py:
Implement MusicBrainz disc id. Works for audio-only discs,
have to figure out why it fails for an Enhanced CD like the
Ladyhawke one.
Add logging.
Add methods to clear a table of files, and to absolutize indexes
as long as the source is the same file, and to set a File on a
given index, adjusting all following indexes that match the
duration, and check if the IndexTable has all information for a TOC.
* morituri/image/toc.py:
Add logging.
Use a counter for the source.
Fix up index offset calculation.
* morituri/program/cdrdao.py:
Use a real IndexTable as the result, instead of a TocFile.
* morituri/image/cue.py:
Use a real IndexTable to store tracks.
* morituri/test/test_image_toc.py:
The toc file now has a table which has the tracks.
Fix the tests to adjust for wrong index calculations.
* morituri/test/test_image_cue.py:
* morituri/test/test_image_image.py:
* morituri/image/image.py:
The cue file now has a table which has the tracks.
* morituri/test/test_image_table.py:
Add assertions to make sure when the table can serve as a TOC.
* examples/readdisc.py:
Adjust for changes. Fix up to include AccurateRip results.
First time we can do a complete normal rip including verifying
against AccurateRip results!
* morituri/image/image.py:
* morituri/image/table.py:
* morituri/program/cdparanoia.py:
* morituri/test/test_image_cue.py:
Move to using a shared IndexTable for everything.
Sadly mixed with a MultiTask rename.
* morituri/test/test_program_cdparanoia.py (added):
* morituri/program/__init__.py (added):
* morituri/program/cdparanoia.py (added):
Add a module to wrap cdparanoia. Add a test for parsing
the progress report output.
* morituri/test/test_image_toc.py:
* morituri/test/bloc.toc (added):
Fix up .toc parsing to correct index 0 behaviour.
Add Bloc Party's Silent Alarm .toc file to test HTOA.
* morituri/image/table.py (added):
* morituri/test/test_image_toc.py (deleted):
* morituri/image/toc.py (deleted):
Move files around in preparation for the .toc file parsing.
Allow a SyncRunner to be constructed with verbose too.
Separate a 'running' verbose mode from that.
Fixes unwanted test output.
* morituri/test/test_image_image.py:
Run without verbosity.
* morituri/test/test_image_image.py:
AccurateRip binary files actually contain multiple responses, so
parse all of them.
* examples/ARcue.py:
Handle case of not having a response, and having multiple responses.
Add an object to parse the response of AccurateRip.
* morituri/test/test_image_image.py:
* morituri/test/dBAR-011-0010e284-009228a3-9809ff0b.bin (added):
Add a test for it, based on my Kings Of Leon CD.
Add the 150 frames for the leadin only to the CDDB calculation.
Add methods to calculate AccurateRip id's and URL.
* morituri/test/test_image_image.py:
Add tests for it.
* examples/ARcue.py:
Show AccurateRip URL.
* morituri/image/image.py:
* morituri/test/test_image_image.py:
Add a task to verify a disk image, which also calculates
track lengths for tracks the cue file doesn't know the length of.
* morituri/test/track.flac (added):
* morituri/test/Makefile (added):
* morituri/test/track-single.cue (added):
Add a simple 10 frame flac file, and two .cue files
using it.