player 1

Dependencies:   4DGL-uLCD-SE PinDetect SparkfunAnalogJoystick mbed-rtos mbed SDFileSystem

Fork of 4180FinalLab by Rishi Bhargava

Wireless 2 Player Pong game

Revision:
3:591086e44bf9
--- /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