ARDOUR TO-DO: $Id: TODO,v 1.143 2003/02/21 19:00:56 pbd Exp $
----------------------------------------------------------------------

WAITING FOR GTK+/gtkmm 2.0:
---------------------------
general gtkmmext::ui solution to delete_event in recursive Gtk::Main::run()
float<->ulong conversion in a GtkAdjustment (GTK2 uses doubles)
   * fix the problems caused by range (float) limits on Locations.
figure out how to get frames/timebars to extend to max_frames.

UNDO ITEMS
----------
region gain envelope (fix?)
track height?
capture?
I/O connection state, etc.

BUGS
----
automation editing
-------------------
  - create new points when clicking on line (not just off the line)
  - implement pan mode
  - need a way to choose which curve to select
      - also which redirect curve (per-track?)
  - meters should reflect pan/gain automation

   -------------------

timestretch should always use original source data
need to indicate solo-safe status
"big clock" resizing (it doesn't)
export to audiofile contains clicks/pops even with no SRC/dither
zoom focus is broken
RT-ness of all RT-thread STL usage
RT-ness of automation polling
relayering doesn't update the playlist sometimes.
automation interpolation produces ringing
timefx appears not to work (new region not inserted).
transport buttons can still get locked up/out (looks like mutex
   deadlock or memory overrun).
send gain control is clicky.
cut of selected region doesn't do anything
copy of selected regions doesn't do anything
mixer window is too big at startup.
minimum editor window size is too large for some displays.
some regionview names don't seem sensitive to canvas events
splice mode needs to work correctly all the time, at the right times
removing a port then adding a new one can cause duplicate names
plugin automation buttons don't update from a plugin signal
route gain envelopes don't take effect without a seek
some playlist changes don't take effect without a seek
autostop accuracy is block-level, not frame-level
fix audio clock editing
rulers
   * finish BBT ruler (extend to wherever using default tempo)	
   * better point selection logic ?
editor selection in general
export should handle stereo routes appropriately (ie. use pan somehow).
apparently selected location on startup of locations window, or
     when creating new location from selection is *not* selected
source/region naming/region list display

GUI DETAILS
-----------
Remove regions from region list
Some location window ops need dbl click, some don't

NECESSARY FEATURES
------------------
automation editing
fix up recorder window with its new purpose, whatever that is

DESIRABLE FEATURES
------------------

like, totally rock, dude.
use snapshot mechanism to provide persistent undo/redo
     - needs better integration of automation state
        into session state.
route click via various outputs.
duplicate-with-gap
panner multichannel backend code
select new port display when its created
copy/paste io configurations
use control outs in ardour/gtk
a way to hide rulers selectively
shift-drag of location marker *shifts* the location.
Better temporal navigation
new region via plugin.
digital input trim.
indicate loop/punch status for location markers.
possibly allow metering max-level adjustment at run-time
use multi-loop-take ala Samplitude/PT
song mode autonames for locate points
     intro, verse1, verse N, chorus, bridge, outro/tag
different clock display modes:
    elapsed
    remaining
    time since location start
    time till location end
set up mouse click binding system
handle missing audio sources when loading
option/action to snap selection to zero crossings
time compress/expand

CHROME
------
make prompters look nicer still.
make ladspa plugin selector look nicer
don't popup "no group" when there are no groups (mixer strip).
fix bug in Gtkmmext with wrapping on Gtkmmext::ClickBox
make region editors look nicer
region editor audition button doesn't pop up after audition is finished
allow same color for all streamviews

Audio Stream
------------

[ These are JACK TODO's ]

* need to ensure that cards like the Hammerfall are really set
  to the correct sample rate when connected to an external
  clock source.
* ::connect_to_session() should indicate a problem if the
    sample rate is wrong ....

MIDI Machine Control
-----------------------

* handle stupid Mackie TC buttons
* send MMC rec-enable messages
* allow control (MMC/Local) selection to work
* make sure that MMC ID works

EDITOR, etc.
------------

* fix up time ruler
* "use location to define selection"
* "save as"
* "snap to grid" for selection process and for inserts
