player 1
Dependencies: 4DGL-uLCD-SE PinDetect SparkfunAnalogJoystick mbed-rtos mbed SDFileSystem
Fork of 4180FinalLab by
Wireless 2 Player Pong game
Diff: soundBuilder.cpp
- Revision:
- 3:591086e44bf9
diff -r 6163865f5ce3 -r 591086e44bf9 soundBuilder.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/soundBuilder.cpp Sun Apr 24 01:23:28 2016 +0000 @@ -0,0 +1,70 @@ +#include "Speaker.h" +#include "soundBuilder.h" + +Note::Note(){ + setFreq(0); + setLength(0); + setVolume(0); +} + +Note::Note(float freq, float dur, float vol){ + setFreq(freq); + setLength(dur); + setVolume(vol); +} + +void Note::setFreq(float nfreq){ + freq = nfreq; +} + +void Note::setLength(float dur){ + length = dur; +} + +void Note::setVolume(float vol){ + volume = vol; +} + +float Note::getFreq(){ + return freq; +} + +float Note::getLength(){ + return length; +} + +float Note::getVolume(){ + return volume; +} + +SoundBuilder::SoundBuilder(float freq[], float dur[], float vol[], int numNotes, Speaker *mainspeaker){ + for (int i = 0; i < numNotes; i++){ + song[i].setFreq(freq[i]); + song[i].setLength(dur[i]); + song[i].setVolume(vol[i]); + } + speaker = &(*mainspeaker); +} + +void SoundBuilder::setNote(float freq, float dur, float vol, int noteNum){ + song[noteNum].setFreq(freq); + song[noteNum].setLength(dur); + song[noteNum].setVolume(vol); +} + +void SoundBuilder::playNotes(int start, int stop){ + for (int i = start; i <= stop; i++) + speaker->PlayNote(song[i].getFreq(), song[i].getLength(), song[i].getVolume()); +} + +void SoundBuilder::playSong(){ + playNotes(0, sizeof(song)/sizeof(*song)-1); +} + +void SoundBuilder::clearSong(){ + for (int i = 0; i < sizeof(song)/sizeof(*song); i++){ + song[i].setFreq(0); + song[i].setLength(0); + song[i].setVolume(0); + } +} \ No newline at end of file