* 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.
* morituri/image/toc.py:
* morituri/common/checksum.py (added):
* morituri/common/crc.py (deleted):
Rename crc to checksum, because AccurateRip checksums are not CRC's.
* 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/common/crc.py:
* morituri/common/task.py:
* morituri/image/image.py:
Add a 'schedule' call to the TaskRunner class, so that we can
abstract things like gobject.timeout_add and reactor.callLater
Pass the runner to the task in Task.start() so a task can call
schedule.
* morituri/common/task.py:
* morituri/image/image.py (added):
Add an object for handling an Image based on a .cue file.
Create a Task for CRC'ing the whole Image.
Make the example use this new task instead.