Dance Dance Revolution program for secondary mbed
Dependencies: SDFileSystem mbed wave_player
main.cpp
- Committer:
- wliu88
- Date:
- 2016-04-29
- Revision:
- 0:4669e409389d
File content as of revision 0:4669e409389d:
/*
File: DanceDanceFullGame_SECONDMBED.main.cpp
Author: Akshay Nagendra, Weiyu Liu
Description: File responsible for operating the second mbed, in charge of listening to the main mbed for a ready signal and then playing the music for the game
*/
#include "mbed.h"
#include "wave_player.h"
#include "SDFileSystem.h"
//setup variables and objects for music playing
AnalogOut DACout(p18); //music played using analog out
wave_player waver(&DACout);
SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sck, cs
DigitalIn songSelected(p21); //signal from main mbed (asserted when a song has been selected)
DigitalIn specificSong(p22); //signal from main mbed (asserted which specific song should be played)
void playSound(char * wav);
int main(){
while(!songSelected){
//wait until the main mbed send the ready signal for playing a song (players are still readying up and selecting music)
}
if(specificSong){ //a song has been selected and a '0' means Animals, and '1' means Novocaine
wait(5); //a delay so that the arrow lines up with the first note of the song
playSound("/sd/wavfiles/Novocaine2.wav");
}
else {
wait(3.85); //a delay so that the arrow lines up with the first note of the song
playSound("/sd/wavfiles/Animals2.wav");
}
}
void playSound(char * wav)
//helper function to play the music
{
// open wav file
FILE *wave_file;
wave_file=fopen(wav,"r");
// play wav file
waver.play(wave_file);
// close wav file
fclose(wave_file);
}