
These files belong to a frontend for the yaf-backend.
For now the classes are based on the qt/kde libraries. 
But this may change in the future
in order to make the package more general.


The basic idea behind these classes is to provide
a better interface to add more decoders to
a frontend. For this it is necessary that the backend
(the decoder eg: mpg123, wavplay,...) can write
its output to a file instead to /dev/dsp
(This can be done very easily with every decoder:)


This file is then read by thes frontend. Thus if you
create a FIFO file the backend writes the rawdata
and the frontend read the raw data out of the fifo.

Thus you have 2 general streams :

1 a communication stream. 
2 the data stream

The frontend sends orders to the backend and expect that
the backend send the correct data to the data stream.
Then the frontend takes care that the raw data is written
to /dev/dsp.

This is very useful:
- The frontend GUI (like kmpg) must administer only one buffer
  in the GUI itsself, and not different buffer types for
  different decoders.

- A decoder must only implement the basic "xplayer" features
  and write the output in a given file.
  No /dev/dsp or buffer handling anymore in the decoder.
  
- The GUI can add Analysers on the raw data which will automatically
  work with all decoder.(because they all produce /dev/dsp raw data)

- Pre-decoding can be done more sophisticated:
  the GUI starts a new decoder, and when the first decoder
  finishes decoding  the GUI switches the device to the second decoder.
  (Which has already filled its buffer)

- You can merge raw-data stream.(Not done yet, because I don't know
  how to write such an algorithm, but it is nevertheless possible)
  This would allow you to start the second mpg3 eg. 10 seconds
  before the first is ready. (Very useful if you make mp3-parties
  and have not 2 soundcards and a external mixer)






 





