The following things are not implemented yet:

- prerolling: this means that it is possible for buffer underruns occasionally.
  we want to preroll at least 50% of buffer_size before actually writing anything
  to the soundcard.

The following things would be nice:

- use HAL (or DeviceKit) to match up devices and mixer settings. The old way sucks
  majorly, I want to be able to just choose a soundcard and have it set up the mixer
  the right way on it's own. This is 2009, and this should be possible.

(right now we don't use HAL/DeviceKit, but have a trivial function to determine what
 mixer settings we use.  pcm:default seems like a good choice for finding the system
 default soundcard/mixer, which we use already...)

Things that won't be reimplemented:

- support for custom period sizes and buffer sizes. we want to use the ALSA defaults
  since they provide the optimal values for each card. this means that specifying
  period/buffer sizes is retarded.

Notable differences between the old ALSA plugin and the new one:

- tickless design:
  The old ALSA plugin basically did a lot of polling. This does not, instead using
  an event-driven tickless design using conditionals.

- uses ALSA "safe" API subset:
  Plugin should work correctly with all userspace plugins.
