2009-04-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* 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  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/ARcue.py:
	* examples/gtkcrc.py:
	  Rework both examples to look more similar.

2009-04-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/gtkcrc.py:
	* morituri/common/task.py:
	  Move the gtk-based progress bar to task.

2009-04-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* 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  Thomas Vander Stichele  <thomas at apestaart dot org>

	* morituri/common/task.py:
	  Update the docs.

2009-04-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	* morituri/test/test_image_image.py (added):
	  Add tests for AudioRip CRC'ing images.

2009-04-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* 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  Thomas Vander Stichele  <thomas at apestaart dot org>

	* morituri/image/image.py:
	  If paths are relative, make them relative to cue file.

2009-04-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* morituri/common/task.py:
	  clear with whitespace.

2009-04-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* 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  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/gtkcrc.py:
	* morituri/common/task.py:
	  Add task object to listener interface methods.

2009-04-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* morituri/common/task.py:
	  Move methods around.

2009-04-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* 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  Thomas Vander Stichele  <thomas at apestaart dot org>

	* morituri/common/crc.py (added):
	  Copy from task.py before splitting.

2009-04-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/gtkcrc.py:
	* morituri/common/task.py:
	  Don't block the main loop by infinitely scheduling
	  set_state.

2009-04-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* 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  Thomas Vander Stichele  <thomas at apestaart dot org>

	* 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  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/ARcue.py:
	  Error out when the file doesn't exist.
	* morituri/common/task.py:
	  Drag the lake.
	  Clean up prints.

2009-04-11  Thomas Vander Stichele  <thomas at apestaart dot org>

	* morituri/common/task.py:
	  Remove queue to avoid race.
	  Remove prints.
	  Clean up debug.
	  Update progress after handling buffers.

2009-04-05  Thomas Vander Stichele  <thomas at apestaart dot org>

	* 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-03-26  Thomas Vander Stichele  <thomas at apestaart dot org>

	* 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-22  Thomas Vander Stichele  <thomas at apestaart dot org>

	* examples/ARcue.py:
	* morituri/common/task.py:
	  First version that seems to get some AccurateRip checksums right.

2009-02-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* morituri/image/cue.py:
	  publicize CueFile.tracks
	  Add a method to get track lengths
	* examples/readcue.py:
	  Use it.

2009-02-28  Thomas Vander Stichele  <thomas at apestaart dot org>

	* morituri/common/task.py (added):
	  Add a task abstraction.

