Michele Furlanetto / Mbed 2 deprecated mbed_keyboard

Dependencies:   TextLCD mbed MMA8451Q TSI

Speaker.h

Committer:
mfurlanetto
Date:
2015-09-19
Revision:
8:60231840370f
Parent:
6:459ddd3079fa
Child:
10:6e18b220e10c

File content as of revision 8:60231840370f:

#include "mbed.h"

#ifndef SPEAKER
#define SPEAKER
// new class to play a note on Speaker based on PwmOut class
// based on zchen311 implementation
// http://mbed.org/users/zchen311/code/Speaker/
class Speaker
{
public:
    Speaker(PinName pin) : _pin(pin) {
    // _pin(pin) means pass pin to the Speaker Constructor
    frequency=0;
    _volume=0.2;
    }
    // class method to play a note based on PwmOut class
    void changeFrequency(double delta) {
        frequency+=delta;
        if(frequency >0){
            _pin.period(1.0/frequency);
            _pin = _volume/2.0;
        } else {
               _pin = 0;
               frequency=0;
        }
    }
    double getFreq(){
        return frequency;   
    }
    float* getVolumeBuffer(){
        return &_volume;
    }
private:
    PwmOut _pin;
    float _volume;
    double frequency;
};

#endif