SDPlayerGoto Solution 2017-03-22
=================================
This is a special VS1000 Audio Module firmware that only plays from the uSD
card. The firmware uses a very compact wav decoder, and by default plays
both linear PCM WAV files and Ogg Vorbis files. However, the wav decoder
is very stripped and optimized.

USB support is disabled.

WAV supports a command to seek to a position in ms resolution.
(For Ogg Vorbis the ms part is ignored.)

This firmware starts up in file mode, and does not play files automatically.
You can change this default by commenting out the #define START_IN_FILE_MODE
from sdplayer.c .

Programming
-----------
Because this is a single-program solution (the normal audio module firmware
has 3 separate programs), you can program this into the VS1000 Audio Module
with the default VSIDE prommer tool.

1) ground the xCS pin of the VS1000 Audio Module
2) power up the module (connect VCC), remove the grounding on xCS
3) run the VSIDE prommer/flasher utility from the Project menu,
   select the "VS1000 SPI Flasher (24-bit)"

Note: this release comes with a new libc.a and libdev1000.a in the lib/
subdirectory, so just copying sdplayer.c to your own project may not work.


Usage
-----
Line-format commands must be followed by a newline or carriage return.
Some single-byte commands do not need a newline, but the commands are
only recognized when other characters are not sent after the previous
newline, i.e. when the line is empty.

Each command gives a response.

Commands that require a newline:
  "p<num>\n" - play file <num>, cancels current file (if one is playing)
  "P<name>\n" - play file <name>, cancels current file (if one is playing)
	        (for example "PAUDIO_00OGG\n")
  "OFF\n" - responds with 'o', then turns unit off
  "L\n" - list files in the FAT directory record format (32 bytes per file)
  "v<vol>\n" - set volume to <vol> (for example "v40\n", 0 is highest volume)
	       responds with two-byte current volume level
  "g<ms>\n"  - change the play position to the position specified in ms.
Commands that do not require newline, if given at the start of the line:
  'f' - switch to file mode (wait for play command or queued song)
  'c' - switch to continuous play mode (play next file automatically)
  'C' - cancel current song, responds with 'C'
  '+' - volume up, responds with two-byte current volume level
  '-' - volume down, responds with two-byte current volume level
  '' - faster play, responds with new play speed
  '=' - pause on, responds with '='
  '>' - play (normal speed), responds with '>'
  '?' - inquiry position, returns play seconds (4 bytes, high byte first),
	and one-byte file left indicator (255 to 0).
  ',' - previous file, responds with 'p'
  '.' - next file, responds with 'n'
