RoxDAO 0.2
~~~~~~~~~~
DONE. Burn should save unsaved toc before burning. (tempfile)
DONE. Check that cursor is > 0 at split block
DONE. Use wave module to check that .wav files are 16bit 44.1KHz Stereo,
      and check length with wav.getnframes()
DONE. Relative pathnames in .toc (relative to location of .toc file)
  * only in saved .toc, use full path inside RoxDAO and temporary .toc
    file when burning...
  * we need to generate the .toc text AFTER we know where to save it so        
    that the .toc files path can be in the list...
  * dirname(tocfile) must be same as all dirname(t.file) or same as        
    none of them.
DONE. Fix burner autoscrolling and read all remaining output from cdrdao
      when it has quit so that we get any error messages..
DONE. Fix bug with speed option, must always use int.
DONE. Check that dropped file really is a file.
DONE. Automatic conversion of .mp3 and .ogg with Mp3Ogg2Wav application

RoxDAO 0.3
~~~~~~~~~~
DONE. Dropping a .toc on a track inserts it instead of appending it.
DONE. Implement a "modified" flag and check it before quit
DONE. Remove leftover debugging stuff (rox.info at save_toc)
DONE. Changing length of silence didn't work.
DONE. fix bugs in Track.set_end() and .set_length()
DONE. update the other entries when pressing Enter after editing one entry
DONE. DnD for the NEW button -> open files in new window...
DONE. Improve silence dialog
DONE. Split track must select track at cursor first!
DONE. Built in audio player with playcursor
DONE. Audio player should play silences

========
| TODO |
========

playcursor doesn't show the real playing position (due to buffers?)

Support pregap/start/zero .toc features

Auto-scroll when dragging outside trackbox

Put nTracks, nBlocks, totalTime and absCursor in a frame next to
the "selected block" frame...

Editable entry for cursor (both block-relative and absolute)

Link blocks in same track - so that you can move one whole track at once

Make DnD work between multiple instances of RoxDao() objects, so that
we can let the NEW button just create a new RoxDao() window...
And AppRun should maybe check if another RoxDAO is running and if so call
the_other_roxdao.new()? Use xmlrpclib? Or DBus?
We need to put global vars (filename and tocfile) in RoxDao object.

Temporary conversion of MP3 and OGG before burn?
  use tempfiles, keep them open until track removal or RoxDAO exits.
  make a track.tmpfile fileobject, keep track.filename as it is.
  burner should use track.tmpfile.fname instead....
  NOTE: If we use tempfiles, the .toc files will not work as they are, we
  must specify the real filenames in it becouse the tempfiles will not exist..
  Then the .toc files will only be usable from RoxDAO, which will convert them
  temporary before burning...

  ? try to pass the audio data to cdrdao's stdio (FILE "-" ...) ?

Simple frontends for read-cd and copy-cd, with AppMenu items...
  read-cd: makes a name.raw and name.toc file

CD-Text editor

Add next/prev track/block buttons, (should it set cursor?)

Auto-center cursor when zooming looks strange...

View TOC?

Draggable cursor (not only click)

Draw waveforms on the blocks?

