

All these files in this directory are part of the yaf proctol
backend players. These directories include the "protcol-wrapper"
for the yaf API playler pluging. Please read players/players.txt
for other copyright notices.

Although yaf tries not to depend on files from 
other libaries this version compiles only with Qt/Kde.

yaf is written for kmpg (KDE-mp3player) and for now uses 
classes from this libaries.

In order to build a GUI around the yaf package 
you should know about the basic concepts of Yaf.

Yaf allows you to start an unlimited number of yafPlayer classes
Each class encapsulates a yafDecoder. Example:
You start a yafPlayer with a mp3 Decoder with good
sound quality and another yafPlayer with a decoder with
a bad (mono, downsample) quality.

These yafPlayer are ready to decode mp3 files but generate
different pcm streams.

Then you construct a few Devices like in the example:

    multicastDevice
    |
    +---- timerDevice
    |
    *---- audioDevice
    |
    +---- spectrum Analyser Device
    
    
The multicast device is a device which stores many other
devices and pass the pcm data which it receives to
all connected device. Thus you generate 3 things out of the
pcm data:

1. The Time already played
2. The music
3. The Spectrum

A gui can use information 1 & 3 to display it on the screen.
But before the multicast device gets data by a player
you must attach the device with the player

player->addListener(multicastDevice)

Then all the pcm data is send to the multicastDevcie.
Another thing is that you can pass this devicetree
around. Example:

You can pass the multicast device to the second (low quality) 
player. Thus you can change pcm streams without touching the
gui. (nice feature)







