* morituri/program/cdparanoia.py:
* morituri/rip/cd.py:
Clean up the temporary unencoded file.
Pass profile as objects to tasks, so that temp files have the right
extension.
* morituri/program/cdparanoia.py:
Add encoding profiles, kept simple for now as a class and
subclasses. Use them to encode. Calculate peak level while
encoding, compared to EAC and replaygain's value.
* morituri/rip/cd.py:
Use the encoding profiles, ripping with the right extension.
Add a --profile parameter for it.
Add asserts for comparing id's between the simple toc and
the full table.
Create the output directory before ripping the htoa.
Ignore data tracks for now.
Don't fail if we have no AccurateRip responses.
* morituri/image/table.py:
Add a session ivar to Track.
Factor in session leadin when calculating track length
of last track in a session.
add getMusicBrainzSubmitURL()
add _getSessionGap() because the session gap size is different
for session 2 and all following.
Use it in merge() to get offsets right.
Fix getAccurateRipURL by only using the audio tracks for the
'length in tracks' number
Temporarily disable writing out data tracks to a .cue file,
since it's not implemented yet.
Add canCue to see if we can write a .cue file from the given table,
and debug why not if not.
* morituri/program/cdrdao.py:
Rework to rip each session separately instead of using session 9.
This fixes session 9 read-toc missing the pregap.
Add a simple LineParser for handling output from disk-info.
Count tracks relatively for the session, because the output for
session 2 for track numbers picks up where session 1 left off.
Don't set leadout from TOC printing since for the same reason
session 2's leadout is absolute, not relative to start of session.
Add a DiscInfoTask.
Convert Table and Toc reading tasks to multitasks, first getting the
number of sessions, then reading table/toc for each session.
* morituri/test/test_image_table.py:
Fix up MusicBrainz disc id for my Ladyhawke disc.
Add AccurateRip URL verification, compared against EAC's.
* morituri/test/test_image_toc.py:
Use two separate session read-toc output files to verify
the case of Das Capital.
Verify musicbrainz URL.
Add documentation.
Use a _task counter instead of duplicating tasks to
__tasks; this allows us to add tasks after starting.
Catch Exceptions during next() so that we don't get
stuck in a main loop that doesn't exit.
Raise it later when we're done.
* morituri/test/capital.2.toc (added):
Add two .toc's for two sessions of a 2 session disc
* morituri/image/table.py:
Add a merge method to merge in a second session.
* morituri/test/Makefile.am:
* morituri/test/test_image_toc.py:
Add a test for merging the Das Capital sessions, gets
the CDDB disc id right.
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