player 1

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

Fork of 4180FinalLab by Rishi Bhargava

Wireless 2 Player Pong game

soundBuilder.cpp

Committer:
rishibhargava1
Date:
2016-04-24
Revision:
3:591086e44bf9

File content as of revision 3:591086e44bf9:

#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);
    }
}