TODO list (March 2011, Erik de Castro Lopo)

- Check that malloc result isn't cast.
- Remove #Include "message.c" from app/Main.cpp
- Check all usage of strncpy, strcpy, strcat etc.

- Switch to float as internal data format.
- Clean up input/output/etc plugin APIs.
- Improve interpolation quality of varispeed.
- Clean out GTK+/Glib 1.x cruft.
- Add streaming support for all plugins.
- Look into using libmagic to determing file types.
- Improve the can_handle() function of all input plugins.
- Accept audio files as well as playlists in the file open dialog.


User request:
-------------
Add support for multi-channel audio files.
This will probably require substantial rewriting.
Some voluteer? If so, add you in the TODO list.


Old TODO list follows. These have not necessarily been dropped.

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

TODO list (2007 June 23)

- The gtk2 interface is in fast progress. It provide the same level of functionality
  as the gtk1 one and more is under development. A big thanks to Madej for his work
  on this interface.

* sound quality improvements:
- convert all internal sound representation to 32 bits floats and convert back
  to int for alsa (doing that globally will be the easiest way).
- use libsamplerate for resampling (pref option for quality).
- sndfile input plugin reduce everything to 16 bits. Floating point wav files
  produce silence (such as Ardour generated files). Fix it.

* Other important things to do:
- Modify threading to use conditional wait; more portable
- global: move libalsaplayer to a standalone application with unix-sockets or
  TCP- (UDP-?) based interface.
  This will include (list of ideas at that time):
  - Adding TCP-based control module in parallel with unix-socket based one.
  - Separating libalsaplayer and checking for crossplatform-readiness.
  - Separating all the interfaces.
- gtk2: traslation in more languages; check the actual translations.
- flac: check the Makefile. With flac>= 1.3, the oggflac test is not needed.
  Maybe separate the flac>1.3 patch into separated files.
- flac: stream support.
- scope plugins: option to scale some of the scopes (at least Synaescope) at
  full screen or double size. (double size will be faster and easier to implement).
- Check if the MIME types in the desktop file are correct.
- freedesktop icon.
- cddb: fix the multiple DTITLE line so at both lines are displayed and not only
  the first one as now.
- cddb: Switch from C-style string to C++ style coding should help eliminate
  buffer overflow. Maybe adapt xine support or use http://libcddb.sourceforge.net
- check for possible buffer overflows in CorePlayer.
- Change the default playlist drag and drop to LMB=>move and LMB+shift=copy
- Improve the input plugins in trunk/experimental in order to merge them into
  AP (at least those compatible with the GPL).
- gtk2: playlist prints "Unknown" and the filename for untagged files. Print
  the last 2 folder names in the path so at the user can use */Author/Album/file
  for such files.

Know bugs:
- fix the quiet option, see http://bugs.debian.org/cgi-bin/bug-report.cgi?bug=412112

Old TODO list order according to priority, highest first

- Write proper documentation for the plugin APIs
- Complete default interface redesign
- Proper CD player controls
- Skin support (only the main window)
- Remember position when saving playlists
- accomplish suitability for small/embedded systems
  (Frank Baumgart)

