TODO:

Please see https://github.com/whipper-team/whipper/milestones for further
TODO items; this file exists only to have contents individually removed
eventually, not to be continually updated.

EASY

- self.error() invokes exit() which is bad for a gui

- change format to be %2d - %performer by default
  FIXME: why was this again?

- at least mention the data track somewhere in the log

- handle errors on cdrdao spawning (for example, not having cdrecorder,
  or not putting the disk in)

- add rip offset verify, to verify that the current offset looks coorect

- handle not having wav plugin:
  http://sprunge.us/DYjd
  DEBUG [13888] "ChecksumTask 0xb5e8b290"        ChecksumTask      Jul 25 19:09:47      bus_error_cb: bus <gst.Bus object (bus2) at 0xb5e940a8>, message <gst.Message GstMessageError, gerror=(GError)NULL, debug=(string)"/var/tmp/portage/media-libs/gst-plugins-base-0.10.36-r1/work/gst-plugins-base-0.10.36/gst/playback/gstdecodebin.c\(1003\):\ close_pad_link\ \(\):\ /GstPipeline:pipeline0/GstDecodeBin:decode:\012No\ decoder\ to\ handle\ media\ type\ \'audio/x-wav\'"; from decode at 0x7f74fea8> (morituri/extern/task/gstreamer.py:211)
DEBUG [13888] "ChecksumTask 0xb5e8b290"        ChecksumTask      Jul 25 19:09:47      set exception, 'exception GstException at /home/merlijn/archive/morituri/morituri/extern/task/gstreamer.py:217: bus_error_cb(): (<GError at 0x7f7f5360>, "/var/tmp/portage/media-libs/gst-plugins-base-0.10.36-r1/work/gst-plugins-base-0.10.36/gst/playback/gstdecodebin.c(1003): close_pad_link (): /GstPipeline:pipeline0/GstDecodeBin:decode:\\nNo decoder to handle media type \'audio/x-wav\'")' (morituri/extern/task/task.py:197)

MEDIUM

- after fixing relative, pregaps, and index 02, check when htoa is 0,
  and add a setSilence to table to set a counter 0 with no path, and test
  that the cue file puts a SILENCE/PREGAP

- store drive features in a database

- try http://www.ime.usp.br/~pjssilva/secure-cdparanoia.py and see if it
  is better at handling some bad cd's

- add AccurateRip validation for ripped images to rip command

- consider basing ripping progress not only on read (reaches 100% before
  writes are done) or writes (very bursty in cdparanoia) but a combo of the
  two, each counting for half.

- rip task should abort on task 4 if checksums don't match

- retry cdrdao a few times when it had to load the tray

- do some character mangling so trail of dead is not in a hidden dir

HARD

- rip the data session

- add GUI

- write xbmc/plex plugin

SPECIFIC RELEASES ISSUES

- on ana, Goldfrapp tells me I have offset 0!

- discs we should rip:
	LCD soundsystem disc 2 (data track)

- Zita Swoon anthology cd 1 shows track 8 rip NOT accurate, but checksums match

NO DECISION YET

- possibly figure out how to name releases with credited artist; look at gorky and spiritualized electric mainline

- check if cdda2wav or icedax analyze pregaps correctly

OLD

- check pregaps more than once, to see if results are consistent, or with
  different methods
- check if it's simple to listen to each track in a multitrack completing
- save trms to a pickle, after finishing each track
- cache results of MusicBrainz lookups
- don't keep short HTOA's if their peak level is low
  (see Pixies Planet of Sound single)
- if disk not found in accuraterip, it doesn't mean that it's not accurate
- burn ripped images
- use a temp dir, until the whole rip is good don't move it, so we easily find
  half done rips
  Compare https://musicbrainz.org/cdtoc/MAj3xXf6QMy7G.BIFOyHyq4MySE-
  with https://musicbrainz.org/cdtoc/USC1utCZbTLZy80aHvQzJw4FASk-
  Almost same, but second is 2 seconds longer on last track, suggesting it
  was calculated wrong (150 frame offset done wrong ?) Can't find it in
  edit history though
  Write an example document with this cd as an example explaining offsets
  and id calculations
- when shortening file name then reripping, it rerips since it doesn't know
  the shortened name; see sufjan stevens
- if a disc output dir is already there, see if it was properly finished;
  complain if it was, to not overwrite
- if multiple releases with different artist match the disc id, stop and
  let user continue by choosing one
- artist-credit-phrase fabricated by musicbrainzngs only looks at name, not at artist-credit->name (see e.g. Gorky)
- fix %r for normal case release name
- decide whether output-dir should be part of the relative filenames of things;
  right now it is; maybe split in to base and output ?
