Big Mouth Billy Bass player that takes raw wavefiles and decision list text files from an SD card
Dependencies: SDFileSystem mbed BillyBass
main.cpp@5:5b846ef42702, 2013-06-15 (annotated)
- Committer:
- bikeNomad
- Date:
- Sat Jun 15 03:32:20 2013 +0000
- Revision:
- 5:5b846ef42702
- Parent:
- 4:babc37764bd3
- Child:
- 6:e90a12ca056f
separated into multiple files
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bikeNomad | 5:5b846ef42702 | 1 | #include "billybass.hpp" |
bikeNomad | 5:5b846ef42702 | 2 | #include "song.hpp" |
bikeNomad | 5:5b846ef42702 | 3 | #include "player.hpp" |
bikeNomad | 5:5b846ef42702 | 4 | #include "action.hpp" |
bikeNomad | 0:0944c3654ded | 5 | |
bikeNomad | 0:0944c3654ded | 6 | // Power: |
bikeNomad | 0:0944c3654ded | 7 | // Power GND J9/14 |
bikeNomad | 0:0944c3654ded | 8 | // Vin (6V) J9/16 |
bikeNomad | 0:0944c3654ded | 9 | |
bikeNomad | 0:0944c3654ded | 10 | // Digital: |
bikeNomad | 5:5b846ef42702 | 11 | DigitalOut tail(PTA13); // J3/2 |
bikeNomad | 5:5b846ef42702 | 12 | DigitalOut mouth(PTC12); // J3/1 |
bikeNomad | 5:5b846ef42702 | 13 | DigitalOut head(PTC13); // J3/3 |
bikeNomad | 0:0944c3654ded | 14 | |
bikeNomad | 0:0944c3654ded | 15 | DigitalIn pushbutton(PTD5); // J3/4 |
bikeNomad | 0:0944c3654ded | 16 | |
bikeNomad | 0:0944c3654ded | 17 | PwmOut redLED(LED_RED); |
bikeNomad | 0:0944c3654ded | 18 | PwmOut greenLED(LED_GREEN); |
bikeNomad | 0:0944c3654ded | 19 | PwmOut blueLED(LED_BLUE); |
bikeNomad | 0:0944c3654ded | 20 | |
bikeNomad | 0:0944c3654ded | 21 | // Analog: |
bikeNomad | 0:0944c3654ded | 22 | // GND J3/14 |
bikeNomad | 0:0944c3654ded | 23 | // VrefH J3/16 |
bikeNomad | 5:5b846ef42702 | 24 | AnalogOut speaker(PTE30); // J10/11 |
bikeNomad | 0:0944c3654ded | 25 | |
bikeNomad | 5:5b846ef42702 | 26 | // PTD0 D10 - Used for CS of SPI |
bikeNomad | 5:5b846ef42702 | 27 | // PTD2 D11 - Used for MOSI of SPI |
bikeNomad | 5:5b846ef42702 | 28 | // PTD3 D12 - Used for MISO of SPI |
bikeNomad | 0:0944c3654ded | 29 | // PTC5 J1/9 Used for SCLK of SPI |
bikeNomad | 0:0944c3654ded | 30 | |
bikeNomad | 0:0944c3654ded | 31 | // MOSI, MISO, SCLK, CS, name |
bikeNomad | 0:0944c3654ded | 32 | SDFileSystem sd(PTD2, PTD3, PTC5, PTD0, SD_NAME); |
bikeNomad | 0:0944c3654ded | 33 | Serial pc(USBTX, USBRX); |
bikeNomad | 0:0944c3654ded | 34 | |
bikeNomad | 0:0944c3654ded | 35 | std::list<Song> songs; |
bikeNomad | 0:0944c3654ded | 36 | |
bikeNomad | 0:0944c3654ded | 37 | int main() |
bikeNomad | 0:0944c3654ded | 38 | { |
bikeNomad | 3:00b4c1aadd30 | 39 | SongPlayer player; |
bikeNomad | 5:5b846ef42702 | 40 | pc.baud(SERIAL_BAUD); |
bikeNomad | 3:00b4c1aadd30 | 41 | |
bikeNomad | 0:0944c3654ded | 42 | // read the directory |
bikeNomad | 0:0944c3654ded | 43 | DIR *bassDir = opendir(BASS_DIRECTORY); |
bikeNomad | 5:5b846ef42702 | 44 | if (bassDir) |
bikeNomad | 5:5b846ef42702 | 45 | { |
bikeNomad | 5:5b846ef42702 | 46 | while (dirent *dir = bassDir->readdir()) |
bikeNomad | 5:5b846ef42702 | 47 | { |
bikeNomad | 4:babc37764bd3 | 48 | char fn[ 60 ]; |
bikeNomad | 4:babc37764bd3 | 49 | snprintf(fn, sizeof(fn), "%s/%s", BASS_DIRECTORY, dir->d_name); |
bikeNomad | 4:babc37764bd3 | 50 | pc.printf(fn); |
bikeNomad | 0:0944c3654ded | 51 | // if this is a valid wave filename |
bikeNomad | 5:5b846ef42702 | 52 | if (Song::isValidWaveFileName(fn)) |
bikeNomad | 5:5b846ef42702 | 53 | { |
bikeNomad | 0:0944c3654ded | 54 | pc.printf("\tvalid\r\n"); |
bikeNomad | 4:babc37764bd3 | 55 | player.playEntireSong(fn); |
bikeNomad | 3:00b4c1aadd30 | 56 | pc.printf("Song time: %f\r\n", player.timeInSong); |
bikeNomad | 5:5b846ef42702 | 57 | } |
bikeNomad | 5:5b846ef42702 | 58 | else |
bikeNomad | 5:5b846ef42702 | 59 | { |
bikeNomad | 0:0944c3654ded | 60 | pc.printf("\tnot valid\r\n"); |
bikeNomad | 0:0944c3654ded | 61 | } |
bikeNomad | 0:0944c3654ded | 62 | } |
bikeNomad | 5:5b846ef42702 | 63 | } |
bikeNomad | 5:5b846ef42702 | 64 | else |
bikeNomad | 5:5b846ef42702 | 65 | { |
bikeNomad | 0:0944c3654ded | 66 | pc.printf("Error opening " BASS_DIRECTORY); |
bikeNomad | 0:0944c3654ded | 67 | } |
bikeNomad | 0:0944c3654ded | 68 | } |