$Id: TODO 2482 2009-06-20 18:22:01Z ensonic $

* run 'make todo' to get a list of todo comments from source

* when releasing do:
  * make check
  * cd po;intltool-update -M
  * make dist

* gobject private members
  * we need guidelines for use of ->priv,
    when make members private, when public
  * we need some convention how to shorten all the
    object->priv->member statements
    * do once object_p=object->priv;
    * #define G_SELF self->priv

* new tests
  * load songs and lookup the parts
    (e.g. bt_machine_get_pattern_by_id)
  * try gtk_main_do_event() in GUI tests
  * add test for trigger params

* new stats
  * http://www.chris-lott.org/resources/cmetrics/cyclo-2.0.tar.gz
    mcstrip tools.c | cyclo -c | sort -k2 -n

* quality checks
  for file in src/lib/core/*.c; do gtkdoc-depscan -v --book gstreamer-0.10:0.10.8 $file; done
  
* check translation markup
  podebug --rewrite=xxx buzztard.pot aa.po
  LC_ALL=aa ./buzztard-edit
  - his creates a translation with all strings wrapped by 'xxx' (Help -> xxxHelpxxx)
  - its easy to see what is not marked for translation  

* sparse
  make CC=cgcc

* user docs
 * try getting e.g. the shortcuts table from our wiki
   http://freshmeat.net/projects/wt2db/
   http://wiki.blender.org/index.php/Meta/DocBook_to_Wiki

* song-io refactoring
  * problem
    * plugins support format variants:
      * native : "audio/x-bzt", "audio/x-bzt-xml"
      * bsl    : "audio/x-bmw", "audio/x-bmx"
    * when saving, we'd don't want to reparse the file-name to know what format
      has been selected.
    * simplify code in wave.c
  * done
    * BtSongIOFormatInfo
    * use sub-classes:
      BtSongIONative -> BtSongIONativeXML, BtSongIONativeBZT
  * todo
    * use sub-classes:
      BtSongIOBuzz   -> BtSongIONativeBMW, BtSongIONativeBMX
      (does it make sense here?)

* controller api
  * allow to modify interpolation control sequence inplace (scale time or value range)
    - we need a gst_interpolation_control_foreach(cs, callback, user_data)
    - the callback will be called for each controlpoint and can change the
      timestamp and/or value
    - need a way to do it without exposing GstControlPoint internals
      - void callback(GstClockTime *timestamp, GValue *value, gpointer user_data);

