Specifications
would in turn talk to Windows to get the required information about files and then pass
this on to the GUI. At the same time it was decided that the Ethernut should not
communicate with Windows directly but instead, through a server. This meant that it
would make more sense for the GUI to interact with Windows directly to form the play
lists and then communicate with the server. Consequently, all the song selection and
organization would be passed onto the server, reducing the overhead from the player.
All the player had to do then is request the current, previous or next song, and the server
could talk to the GUI and start the transfer. It was decided that the look and
functionality of the GUI should be similar to Winamp, with the ability to drop and drag
files onto the play list or enter through a dialog box. After developing a simple interface
in Visual C++, the next step was decided to investigate how the GUI and the server
program would in fact communicate. Attempts at integrating the server into the GUI
code were unsuccessful and so the decision was made to use an intermediary file to
store the play list. The GUI would write all the songs into a file and the server could
read this file to choose the song and its location.
It was at this stage that development on the GUI slowed and the server and player
development took priority. As mentioned earlier, most of the development of the server
was done by manually entering the song locations into a text file and then the server
opened files from this play list depending on what line the file was on. Once this was
successful, development switched back to the GUI, with the main aim of creating the
same file that was used before. A simple drag and drop utility was developed in which
files could be added to a dialog box but developing with the entire flexibility of
Winamp was going to be difficult.
5.3.9.4 Winamp as the GUI
It seemed like it would be far better if Winamp could instead be used. To determine
whether it could be used it had to be determined if the play list file it constructs was
usable. The structure looks as follows.
#EXTM3U
#EXTINF:342,Jeff Buckley - Mojo Pin
C:\mp3\Jeff Buckley\Grace\01 - Mojo Pin.mp3
59










