Big Mouth Billy Bass player that takes raw wavefiles and decision list text files from an SD card
Dependencies: SDFileSystem mbed BillyBass
Diff: main.cpp
- Revision:
- 7:ce27f959813b
- Parent:
- 6:e90a12ca056f
- Child:
- 8:1dd2bb31dec6
--- a/main.cpp Sat Jun 15 04:08:25 2013 +0000
+++ b/main.cpp Mon Jun 17 22:18:12 2013 +0000
@@ -1,4 +1,5 @@
#include "billybass.hpp"
+#include "SDFileSystem.h"
#include "song.hpp"
#include "player.hpp"
#include "action.hpp"
@@ -7,17 +8,15 @@
// Power GND J9/14
// Vin (6V) J9/16
-// Digital:
-DigitalOut tail(PTA13); // J3/2
-DigitalOut mouth(PTC12); // J3/1
-DigitalOut head(PTC13); // J3/3
+// tailPin, mouthPin, bodyPin
+BillyBass testBass(LED_RED, LED_GREEN, LED_BLUE);
+
+// tailPin, mouthPin, bodyPin
+// J3/2, J3/1, J3/3
+BillyBass realBass(PTA13, PTC12, PTC13);
DigitalIn pushbutton(PTD5); // J3/4
-PwmOut redLED(LED_RED);
-PwmOut greenLED(LED_GREEN);
-PwmOut blueLED(LED_BLUE);
-
// Analog:
// GND J3/14
// VrefH J3/16
@@ -28,44 +27,33 @@
// PTD3 D12 - Used for MISO of SPI
// PTC5 J1/9 Used for SCLK of SPI
-// MOSI, MISO, SCLK, CS, name
+// MOSI, MISO, SCLK, CS, name
SDFileSystem sd(PTD2, PTD3, PTC5, PTD0, SD_NAME);
+
Serial pc(USBTX, USBRX);
-std::list<Song> songs;
-
int main()
{
SongPlayer player;
pc.baud(SERIAL_BAUD);
- redLED = 1.0;
- greenLED = 1.0;
- blueLED = 1.0;
+
+ pc.printf("*** REBOOT ***\r\n");
// read the directory
- DIR *bassDir = opendir(BASS_DIRECTORY);
- if (bassDir)
- {
- while (dirent *dir = bassDir->readdir())
- {
- char fn[ MAX_FILENAME_LENGTH ];
- snprintf(fn, sizeof(fn), "%s/%s", BASS_DIRECTORY, dir->d_name);
- pc.printf(fn);
- // if this is a valid wave filename
- if (Song::isValidWaveFileName(fn))
- {
- pc.printf("\tvalid\r\n");
- player.playEntireSong(fn);
- pc.printf("Song time: %f\r\n", player.timeInSong);
- }
- else
- {
- pc.printf("\tnot valid\r\n");
- }
+ DIR *bassDir = 0;
+ while (!bassDir) {
+ if ((bassDir = opendir(BASS_DIRECTORY)) != 0)
+ break;
+ pc.printf("Error opening " BASS_DIRECTORY "\r\n");
+ wait(1.0);
+ }
+
+ if (!Song::readAllSongs(bassDir)) {
+ pc.printf("Found no songs!\r\n");
+ } else {
+ for (std::list<Song *>::const_iterator song_it = Song::songs.begin(); song_it != Song::songs.end(); song_it++) {
+ Song *song = *song_it;
+ song->print(pc);
}
}
- else
- {
- pc.printf("Error opening " BASS_DIRECTORY);
- }
}
Ned Konz