Commit Graph

60 Commits

Author SHA1 Message Date
Thomas Vander Stichele
0fe1be06b7 * morituri/extern (added):
* morituri/extern/__init__.py (added):
	* morituri/extern/asyncsub.py (added):
	  Add extern module; add asynchronous subprocess Popen from
	  http://code.activestate.com/recipes/440554/
2009-04-19 17:26:05 +00:00
Thomas Vander Stichele
3c6c44e4ea add todo file 2009-04-19 09:04:13 +00:00
Thomas Vander Stichele
26bfe85631 * examples/gtkchecksum.py:
* morituri/common/checksum.py:
	  Final crc->checksum fixes.
2009-04-15 13:41:15 +00:00
Thomas Vander Stichele
587f1a45dd * examples/ARcue.py:
* morituri/common/checksum.py:
	* morituri/image/image.py:
	* morituri/image/toc.py:
	* examples/gtkchecksum.py (added):
	* examples/gtkcrc.py (deleted):
	  More crc->checksum changes.
2009-04-15 13:39:16 +00:00
Thomas Vander Stichele
1dffa8ec42 add comment 2009-04-15 13:32:10 +00:00
Thomas Vander Stichele
b63ef021a7 * examples/ARcue.py:
* morituri/common/checksum.py:
	* morituri/image/image.py:
	* morituri/test/test_image_image.py:
	  Change crc to checksum everywhere.
2009-04-15 13:31:35 +00:00
Thomas Vander Stichele
9b5050d221 * morituri/image/image.py:
* 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.
2009-04-15 13:23:45 +00:00
Thomas Vander Stichele
1abeac8dcf * examples/ARcue.py:
* morituri/image/image.py:
	* morituri/test/test_image_image.py:
	  Make everything use TOC for the id's.
2009-04-15 13:20:56 +00:00
Thomas Vander Stichele
065754d5d1 * morituri/image/image.py:
Refactor to use TOC class.
	* morituri/image/toc.py:
	  Fully document.
2009-04-15 12:45:22 +00:00
Thomas Vander Stichele
02edffa629 * morituri/test/test_image_toc.py (added):
* morituri/image/toc.py (added):
	  Add an abstraction for a TOC.
	  Take data tracks into account correctly for CDDB and AccurateRip
	  disc ID's.
2009-04-15 12:32:10 +00:00
Thomas Vander Stichele
f865e91526 * morituri/image/image.py:
* 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.
2009-04-15 09:35:58 +00:00
Thomas Vander Stichele
7c598cde9d make it clear which one is ours 2009-04-14 20:19:58 +00:00
Thomas Vander Stichele
13a9f81550 * morituri/common/crc.py:
Actually return the CRC when checking frame 5.
	* morituri/test/test_image_image.py:
	  Update test for this fix.
2009-04-14 20:19:27 +00:00
Thomas Vander Stichele
bce17ff3a2 * morituri/image/image.py:
Also look for audio file basename relative to cue file.
2009-04-13 20:35:36 +00:00
Thomas Vander Stichele
051dc33049 * examples/ARcue.py:
Make output a bit nicer, mentioning whether tracks were
	  accurately ripped.
2009-04-13 20:00:11 +00:00
Thomas Vander Stichele
362d835829 * morituri/image/image.py:
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.
2009-04-13 18:13:32 +00:00
Thomas Vander Stichele
a8da8d8fa2 * morituri/image/image.py:
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.
2009-04-13 17:27:52 +00:00
Thomas Vander Stichele
ac880acdf1 * examples/ARcue.py:
* morituri/common/crc.py:
	* morituri/image/image.py:
	* morituri/test/test_image_image.py:
	  Calculate CDDB disc id.
	  Tested on my Kings Of Leon CD.
2009-04-12 19:30:57 +00:00
Thomas Vander Stichele
56da05a31c doc and cleanup, add getIndex 2009-04-12 19:30:23 +00:00
Thomas Vander Stichele
919ae5b8e3 * examples/ARcue.py:
* 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.
2009-04-12 18:04:30 +00:00
Thomas Vander Stichele
729280ef42 * examples/ARcue.py:
Add option to run either command-line or gtk.
2009-04-12 11:15:45 +00:00
Thomas Vander Stichele
d49b4fbaec * morituri/image/image.py:
Create a MultiTask base class, and make AudioRipCRCTask
	  use it.
2009-04-12 11:06:23 +00:00
Thomas Vander Stichele
27fd2f16e6 * morituri/image/image.py:
* morituri/test/test_image_image.py:
	  Add a task for calculating frame length of an audio file.
	  Add a test for it.
2009-04-12 10:20:14 +00:00
Thomas Vander Stichele
b7eb47325e * morituri/common/task.py:
Schedule the start from the main loop, otherwise the
	  task might complete before we're in the main loop,
	  and then the loop.quit() doesn't work.
2009-04-12 10:18:56 +00:00
Thomas Vander Stichele
0ab4aed9a2 some more reorganizing 2009-04-12 09:03:43 +00:00
Thomas Vander Stichele
68669e35b5 some more reorganizing 2009-04-12 09:03:37 +00:00
Thomas Vander Stichele
07587f51e4 * examples/ARcue.py:
* examples/gtkcrc.py:
	  Rework both examples to look more similar.
2009-04-12 09:02:25 +00:00
Thomas Vander Stichele
d47402af60 * examples/gtkcrc.py:
* morituri/common/task.py:
	  Move the gtk-based progress bar to task.
2009-04-12 08:58:36 +00:00
Thomas Vander Stichele
f1d75142da * examples/gtkcrc.py:
* 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.
2009-04-12 08:51:13 +00:00
Thomas Vander Stichele
10647d18a1 * morituri/common/task.py:
Update the docs.
2009-04-12 08:34:44 +00:00
Thomas Vander Stichele
28bd15952b ignore more 2009-04-11 22:11:16 +00:00
Thomas Vander Stichele
a696b14ffe * morituri/test/test_image_image.py (added):
Add tests for AudioRip CRC'ing images.
2009-04-11 22:08:29 +00:00
Thomas Vander Stichele
0d54fc1be8 * morituri/test/track-separate.cue (added):
* 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.
2009-04-11 21:58:24 +00:00
Thomas Vander Stichele
59ebcc85ad * morituri/image/image.py:
If paths are relative, make them relative to cue file.
2009-04-11 21:57:45 +00:00
Thomas Vander Stichele
6804df4b73 * morituri/common/task.py:
clear with whitespace.
2009-04-11 21:57:25 +00:00
Thomas Vander Stichele
51851cc67e * examples/ARcue.py:
* 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.
2009-04-11 17:01:40 +00:00
Thomas Vander Stichele
eda9968703 * examples/gtkcrc.py:
* morituri/common/task.py:
	  Add task object to listener interface methods.
2009-04-11 16:42:04 +00:00
Thomas Vander Stichele
6234b08a2f * morituri/common/task.py:
Move methods around.
2009-04-11 16:38:41 +00:00
Thomas Vander Stichele
8345938584 * examples/ARcue.py:
* examples/gtkcrc.py:
	* morituri/common/crc.py:
	* morituri/common/task.py:
	  Split out generic task/runner from CRC tasks.
2009-04-11 15:40:03 +00:00
Thomas Vander Stichele
2e93bfb988 * morituri/common/crc.py (added):
Copy from task.py before splitting.
2009-04-11 15:36:02 +00:00
Thomas Vander Stichele
1a02c32fc1 * examples/gtkcrc.py:
* morituri/common/task.py:
	  Don't block the main loop by infinitely scheduling
	  set_state.
2009-04-11 14:58:42 +00:00
Thomas Vander Stichele
8486ee782b * examples/ARcue.py:
* examples/gtkcrc.py:
	* morituri/common/task.py:
	  Make a real Task interface and use it.
	  Make runners reusable for multiple tasks.
	  gtkcrc.py seems to be blocking updates however.
2009-04-11 14:46:19 +00:00
Thomas Vander Stichele
ed72dfe94f * morituri/test (added):
* morituri/test/test_image_cue.py (added):
	* morituri/test/kings-single.cue (added):
	* morituri/test/__init__.py (added):
	* morituri/test/kings-separate.cue (added):
	  Add test suite.  Add Kings Of Leon cue files.
2009-04-11 13:37:42 +00:00
Thomas Vander Stichele
7860fe275b * examples/ARcue.py:
Error out when the file doesn't exist.
	* morituri/common/task.py:
	  Drag the lake.
	  Clean up prints.
2009-04-11 12:54:45 +00:00
Thomas Vander Stichele
43acc5b6f5 * morituri/common/task.py:
Remove queue to avoid race.
	  Remove prints.
	  Clean up debug.
	  Update progress after handling buffers.
2009-04-11 11:17:47 +00:00
Thomas Vander Stichele
fcfd128431 remove debugging output 2009-04-10 14:20:31 +00:00
Thomas Vander Stichele
9488415ce7 * morituri/common/task.py:
Introduce constants for FRAMES_PER_DISC_FRAME
	* examples/ARcue.py:
	  Use the constant.
	  Get the CRC right for the last track too.
2009-04-05 16:17:31 +00:00
Thomas Vander Stichele
18631a0fb6 * examples/ARcue.py:
* morituri/common/task.py:
	  Use an adapter to assemble CD frames.
	  Take into account special rules for first and last track.
	  Mention some bugs.
	  Remember to drag the lake from the task.
2009-03-26 14:23:25 +00:00
Thomas Vander Stichele
271bca108f * examples/ARcue.py:
* morituri/common/task.py:
	  First version that seems to get some AccurateRip checksums right.
2009-03-22 15:07:42 +00:00
Thomas Vander Stichele
fc0d953138 add an example calculating crc's from a cue file 2009-03-02 08:46:41 +00:00