Fix getting AccurateRip results for albums with a HTOA.
* morituri/test/Makefile.am:
* morituri/test/test_common_program.py:
* morituri/test/silentalarm.result.pickle (added):
Add testcase for it, Bloc Party's Silent Alarm.
* morituri/common/program.py:
Extract a common method to get textual representation of
AccurateRip results, and test it.
* morituri/rip/cd.py:
* morituri/rip/image.py:
Use the method.
* morituri/common/program.py:
Break verifyImage into two so we can test it.
Test it using an AccurateRip result for Luke Haines Is Dead
which had a wrongly ripped track 10.
Add max confidence from database.
* morituri/common/program.py:
* morituri/rip/cd.py:
Move AccurateRip checking to program.py
Re-rip if verification failed when continuing a rip.
Move getPath to Program.
Remove arguments to ripTrack that can be gotten from
trackResult.
* morituri/rip/cd.py:
Continue without musicbrainz metadata.
Unify htoa and normal track ripping.
* morituri/result/result.py:
Add getTrackResult so it's easier to look up track results
when there's a HTOA.
Change toctable to table since it's a full index table.
* morituri/common/Makefile.am:
* morituri/common/program.py (added):
Add module and class for program state.
* morituri/rip/cd.py:
Use the program state to clean up the do() function.
Add a test() method to the profile so we can warn about bad
flacenc versions.
Encode track number and count, and release date, if possible.
* morituri/rip/cd.py:
Fix another off-by-one error in the tag encoding.
* 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 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.
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.