A description for every source file. Some of the code can compiled as a stand-alone test program (add -DTEST_PC to the gcc call). Then the program can be run on a Unix PC.

Filename                   Testable  Description
action.c                             Handles user actions and display output
bigbuff.c                            Handles the mp3 buffer and segment switching
connurl.c                  Yes       Generates the connection for a shoutcast stream
error.c                              General and serious error handling
filemanager.c              Yes       Database for mp3 files
fileselect.c               Yes       Prepares data to display a list of files for the user
ftpserver.c                          The FTP server
icy200.c                   Yes       Decodes the meta information from shoutcast streams and detects redirects and playlists
id3.c                      Yes       Decodes the meta data from mp3 files
info.c                               Provides a simple way to display a message for the user
infplay.c                            The main() method, thread creation, user input handling, shutdown, stack output
lastfm.c                   Yes       Connects to the Lastfm service
memmapper.c                          Provides functions for memory allocation
menudata-progmem.c                   The binary data from the menu....xml file
menu-interpreter.c         *         The interpreter for the menudata-progmem.c.
menu-text.c                *         Provides a font with drawing functions for the GUI
metainfoqueue.c            Yes       Stores the meta information from streams to show them at the right time
network.c                            Initiates the network, calls the DB creation and sorting commands, starts the FTP server
networkedit.c                        Provides a GUI for editing IP addresses
recorder.c                 Yes       Everything for recording songs if they are played again at a later time
spi.c                                Initiates the mp3 decoder and file system. Later handles the stream logic.
statestorage.c                       Stores a lot of different settings for the player
streamlogic.c                        Handles network connections and data copying from the MMC or network to the buffer and to the MMC if recording is active
stringhelper.c             Yes       Some functions for string manipulation
writemp3.c                 Yes       Opens a file for recording. Writes an ID3 file beginning.
hardware/ks0108drv.c                 The low level LCD driver
hardware/lcdbacklight.c              Some functions for the LCD backlight
hardware/rc5decoder.c                Infrared receiver
hardware/rotdecoder.c                Rotation wheel decoder
hardware/rs232debug.h                Low level functions (inline) for RS232 debug messages
hardware/spimmcdrv.c                 SPI driver for the Arthernet board
hardware/vs1002drv.c                 Driver for the mp3 decoder
deprecated/sed1560-driver.c          Old LCD driver. Replaced by ks0108drv.c
cryptlib/md5.c                       Calculation of md5 sums. Currently not used.

* The menu system can be compiled for a PC if some helper functions are provided. They are not included, but are part of the sourcecode at http://menudesigner.sourceforge.net/
