"TODO" for 3.1 (maybe)
======================

 - Make the aud_cfg struct private (to audconfig.c) and add a couple of
   functions for accessing it.  The new functions should work for both global
   and plugin-specific config.  Hence they can also replace the configdb stuff,
   and libmcs stuff can be hidden from plugins.

 - With the new config system in place, we can keep track of when the config has
   been changed so that we can be smarter about when we save it.  (Right now it
   gets saved every 5 minutes, changed or not, which is bad for SSD's.)  The
   playlist position and resume state should be moved from the main config file
   to the playlist state file.

 - Maybe hooks like "toggle shuffle" can also be automated with the new system.
   That is, when option "xxx" is changed, call a hook named "set xxx".

 - At least try to get a real headless mode working.  This means not using GTK
   stuff, which may be difficult.


Long-term "TODO"
================

- output plugins should have some kind of (optional) "query available formats"
  function, so that the core could determine what should be used. perhaps
  offer users this info?

- maybe all audio plugins (input, output, effect) could be made completely
  re-entrant. this probably means severely breaking the API. not very
  trivial either .. some plugins are probably impossible.
  * basically plugin init() should allocate / init a state struct to
    be used in all operations, etc.
  * context support should be added to plugin functions.
  * question: issues with plugins that use non-re-entrant library backends
    etc?

- URIs with "?" are stripped (the subtune support uses that), which is bad,
  because some (a lot) of real-world URLs use 'GET' arguments. this breaks
  probing, but current input probing is confusing (and possibly broken anyway)
  and should be refactored.
  * As of 2.5, is this still a problem?

- mime-types support:
  * there is already code for mime support, but I think it may not be
    sufficient as it is designed for input plugins only --
    also playlist containers etc. need this (IMHO)

- document the different APIs via Doxygen

- {core,plugins}/configure.ac need some cleanup loving.
  * build system cleanups .. extra.mk.in? wtf? (done in core, progressing
  for plugins)
  --- this is in progress, worked on by ccr

- plugin rewrites:
  * modplug (in progress by ccr)
