PVP Wireless Pong

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

Fork of ECE2036Lab2StarterCode by Joseph Lind

Committer:
Mpmart08
Date:
Wed Apr 27 15:23:54 2016 +0000
Revision:
7:7f2393b8ba4a
Parent:
3:591086e44bf9
stuff

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rishibhargava1 3:591086e44bf9 1 #include "Speaker.h"
rishibhargava1 3:591086e44bf9 2 #include "soundBuilder.h"
rishibhargava1 3:591086e44bf9 3
rishibhargava1 3:591086e44bf9 4 Note::Note(){
rishibhargava1 3:591086e44bf9 5 setFreq(0);
rishibhargava1 3:591086e44bf9 6 setLength(0);
rishibhargava1 3:591086e44bf9 7 setVolume(0);
rishibhargava1 3:591086e44bf9 8 }
rishibhargava1 3:591086e44bf9 9
rishibhargava1 3:591086e44bf9 10 Note::Note(float freq, float dur, float vol){
rishibhargava1 3:591086e44bf9 11 setFreq(freq);
rishibhargava1 3:591086e44bf9 12 setLength(dur);
rishibhargava1 3:591086e44bf9 13 setVolume(vol);
rishibhargava1 3:591086e44bf9 14 }
rishibhargava1 3:591086e44bf9 15
rishibhargava1 3:591086e44bf9 16 void Note::setFreq(float nfreq){
rishibhargava1 3:591086e44bf9 17 freq = nfreq;
rishibhargava1 3:591086e44bf9 18 }
rishibhargava1 3:591086e44bf9 19
rishibhargava1 3:591086e44bf9 20 void Note::setLength(float dur){
rishibhargava1 3:591086e44bf9 21 length = dur;
rishibhargava1 3:591086e44bf9 22 }
rishibhargava1 3:591086e44bf9 23
rishibhargava1 3:591086e44bf9 24 void Note::setVolume(float vol){
rishibhargava1 3:591086e44bf9 25 volume = vol;
rishibhargava1 3:591086e44bf9 26 }
rishibhargava1 3:591086e44bf9 27
rishibhargava1 3:591086e44bf9 28 float Note::getFreq(){
rishibhargava1 3:591086e44bf9 29 return freq;
rishibhargava1 3:591086e44bf9 30 }
rishibhargava1 3:591086e44bf9 31
rishibhargava1 3:591086e44bf9 32 float Note::getLength(){
rishibhargava1 3:591086e44bf9 33 return length;
rishibhargava1 3:591086e44bf9 34 }
rishibhargava1 3:591086e44bf9 35
rishibhargava1 3:591086e44bf9 36 float Note::getVolume(){
rishibhargava1 3:591086e44bf9 37 return volume;
rishibhargava1 3:591086e44bf9 38 }
rishibhargava1 3:591086e44bf9 39
rishibhargava1 3:591086e44bf9 40 SoundBuilder::SoundBuilder(float freq[], float dur[], float vol[], int numNotes, Speaker *mainspeaker){
rishibhargava1 3:591086e44bf9 41 for (int i = 0; i < numNotes; i++){
rishibhargava1 3:591086e44bf9 42 song[i].setFreq(freq[i]);
rishibhargava1 3:591086e44bf9 43 song[i].setLength(dur[i]);
rishibhargava1 3:591086e44bf9 44 song[i].setVolume(vol[i]);
rishibhargava1 3:591086e44bf9 45 }
rishibhargava1 3:591086e44bf9 46 speaker = &(*mainspeaker);
rishibhargava1 3:591086e44bf9 47 }
rishibhargava1 3:591086e44bf9 48
rishibhargava1 3:591086e44bf9 49 void SoundBuilder::setNote(float freq, float dur, float vol, int noteNum){
rishibhargava1 3:591086e44bf9 50 song[noteNum].setFreq(freq);
rishibhargava1 3:591086e44bf9 51 song[noteNum].setLength(dur);
rishibhargava1 3:591086e44bf9 52 song[noteNum].setVolume(vol);
rishibhargava1 3:591086e44bf9 53 }
rishibhargava1 3:591086e44bf9 54
rishibhargava1 3:591086e44bf9 55 void SoundBuilder::playNotes(int start, int stop){
rishibhargava1 3:591086e44bf9 56 for (int i = start; i <= stop; i++)
rishibhargava1 3:591086e44bf9 57 speaker->PlayNote(song[i].getFreq(), song[i].getLength(), song[i].getVolume());
rishibhargava1 3:591086e44bf9 58 }
rishibhargava1 3:591086e44bf9 59
rishibhargava1 3:591086e44bf9 60 void SoundBuilder::playSong(){
rishibhargava1 3:591086e44bf9 61 playNotes(0, sizeof(song)/sizeof(*song)-1);
rishibhargava1 3:591086e44bf9 62 }
rishibhargava1 3:591086e44bf9 63
rishibhargava1 3:591086e44bf9 64 void SoundBuilder::clearSong(){
rishibhargava1 3:591086e44bf9 65 for (int i = 0; i < sizeof(song)/sizeof(*song); i++){
rishibhargava1 3:591086e44bf9 66 song[i].setFreq(0);
rishibhargava1 3:591086e44bf9 67 song[i].setLength(0);
rishibhargava1 3:591086e44bf9 68 song[i].setVolume(0);
rishibhargava1 3:591086e44bf9 69 }
rishibhargava1 3:591086e44bf9 70 }