Add a persisted cache so that we can store pickles on discs.
Automatically delete them if the class version is newer than
the object's.
* morituri/rip/cd.py:
Use it.
* morituri/image/image.py:
* morituri/test/Makefile.am:
* morituri/test/test_image_image.py:
* morituri/test/test_common_accurip.py (added):
Move accuraterip stuff to the accurip module.
Move/create new test file.
read all sessions by reading session 9.
* morituri/image/toc.py:
Parse ZERO statements properly.
Also set absolute offsets when we know them from the .toc file.
Properly set audio flag on tracks.
FIXME: probably doesn't work if the .toc does not have lengths.
* morituri/image/table.py:
Add some debug to cddb disc id calculation.
Fix absolutize function, it was going one index too far.
raise ValueError when overriding .absolute with a wrong value.
* examples/readdisc.py:
Show CDDB disc id at the start.
Assert when toc and table have different disc id's (to be fixed)
* morituri/test/test_image_cue.py:
Update for having the table already with absolute values.
* morituri/test/test_image_toc.py:
Add Ladyhawke CDDB test, it has a data track.
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.
Update .cue writing:
- customise program name
- add DISCID
- use counter for FILE lines
- put FILE line before TRACK if track does not have INDEX 00
Take counter into account for setFile
* examples/readdisc.py:
Add --track-template.
Pass counter to setFile.
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
Add an exception ivar for tasks to set an exception on while
running. Make SyncRunner raise it during done()
* morituri/program/cdparanoia.py:
Set an exception if the ripped file doesn't match the expected size
(for example when disc is full)
* 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!