#include "oscillator.h"
#include "Arduino.h" 

//constructor
Oscillator::Oscillator(double samplerate) : 
    samplerate(samplerate), sample(0), phase(0), amplitude(1.0)
{ 
}

Oscillator::~Oscillator() {}

void Oscillator::resetPhase() 
{
    phase = 0;
}


void Oscillator::initialize(double samplerate) {
     this->samplerate = samplerate;
}

double Oscillator::getSample() {
    return sample;
}

void Oscillator::setFrequency(double frequency) 
{
    this->frequency = frequency;
}

double Oscillator::getFrequency()
{
    return frequency;
}

void Oscillator::tick() 
{
    phase += getFrequency() / samplerate;
    //wrap
    if (phase > 1) phase -= 1.0;

    calculate();
 
}
