
o possible bug/problem: start of a plugin while another plugin is
  still running -> leads to SEGFAULT!
  -> use pid()/waitpid() for detecting thread termination
  + some precautions that the thread's pid already is valid,
  maybe initialize with parent pid [ppid()]
  PROBLEM: is this garantized to work with other threading packages
           than pthread under linux?

o related to above: app crashes on shutdown when a plugin is still running

o crashes at startup when no aRts server can be connected (seen on Mandrake-9)

o finish recording support
  -> currently work in progress

o bugfix: start plugin (e.g. Sonagram) while playback leads to
  lock situation

o more precise handling of the playback pointer
  -> use the delay information from aRts

o function for "Edit/Selection/Insert at..." or a "goto position" function

o add "All Files" to the file open type selection combo box

o hourglass and process indicators for longer processes

o ruler that shows the current cursor position as time

o display of the current position in playback mode

o audible/silent mode of tracks (speakers)
  speaker controls for "audible" mode

o dithering/noise shaping when loading/saving

o volume plugin: show a little "overview" for guessing the level

o volume plugin: implement a "normalize to maximum" button

o auto-detect pause and set markers, for splitting recorded stuff into several
  parts and then save them to disc as separate files
  (feature requested by Stefan Macher)

o record plugin: free selectable sample rates

o record plugin: support for ALSA, important for kernel 2.6 support!

o record plugin: support for aRts
  currently aRts has no working recording support :-(

o virtual memory: multiple swap directories

o change from id3lib to taglib

o install a new_handler() for cases in which we run out of memory

o move undo classes into libkwave

o move KwavePlugin from libgui to libkwave

o implementation of locking, see SampleLock

o open file dialog: add a preview widget that shows info about the file
  and maybe has "playback/pause/stop" buttons

o context menu for the SignalWidget with Copy/Paste etc.

o fast playback mode, playback with facor 1.5x, 3x, 5x, 7x...
  -> look how noatun does that...

o support for compressed wav files, like those found on www.montypython.net
  -> MPEG 3 is still not supported by libaudiofile

o TrackPixmap: implement usage of "extra_samples" for interpolated mode

o support for Spex codec: http://www.speex.org/

o fileinfo plugin: auto-generate filename from "track - title"

o Filter: class needs to be tested

o Signal::resample should use lowpass interpolation instead of spline

o MainWidget: re-enable accelerator keys for 0..9

o use a MenuManager in the plugins (e.g. sonagram)

o resample signal before inserting into a signal with a different sample
  rate (when doing copy/paste)

o optimized cut/paste, at zero-crossing

o channel mixing dialog

o amplifymax does not work
  -> aRts ?

o amplifyclip does not work
  -> aRts ?

o feature "pulse train" is not yet implemented
  -> aRts ?

o move label handling to class LabelManager

o SignalProxy1 implementation is very inefficient for simple data types
  like bool, char, int etc. Uses too much new/delete.

o check at program startup: does the help directory exist? If not, show
  a message and make a symbolic link

o document how to do an optimized build, for example:
  make -f Makefile.dist RPM_OPT_FLAGS="-march=athlon-xp -mcpu=athlon-xp \
  -O4 -Wall -pipe -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT -DQT_NO_TRANSLATION"

o speed up MP3 import by blockwise operation

o storage/handling of extra info "labels", "cue list"...

o SignalWidget::appendLabel()

o SonagramWindow::toSignal()

o rework of the FFTWidget

o bugfix: crash on "additive synthesis"
  -> aRts ?

o some commands do not work: fft, averagefft, distort
  -> aRts ?

o bugfix: channel mixer dialog causes segmentation fault -> disabled
  -> aRts ?

o use standard KDE accelerators (see KStdAccel)

o playback with 24 and 32 bit (or 18, 20 bits) -> maybe needs ALSA support

o import of multi-channel ASCII files

o label handling doesn't work (currently disabled), work on LabelManager
  has not been started

o vertical zoom, maybe with right mouse button or zoom tool

o use namespace "Kwave" for all Kwave components

o splitting of i18n for kwave and each plugin

o use the KDE's clipboard

o support for KDE's session management

o fix bug in Fx->Periodic Silence (segmentation fault)

o macro recorder

o navigation buttons on the overview widget

o use MemoryManager for undo actions

o TrackPixmap: different color sets if selected/deselected

o somewhere in far future: compile on architectures with a different
  size of int (not 32-bit), handle data in original data width

o switch to use float as sample_t (requires much work...)

o watch for new versions of Qt. maybe the Qt bug with submenues mentioned
  in libgui/MenuSub.cpp disappears somewhere in future...

o figure out how to work with exceptions:
  - works if ALL libraries use rtti and we compile with -frtti
  - does never work with --no-rtti
  - the program doesn't link under RedHat with -frtti
  => no rtti and no exceptions :-(

