Arduboy2/src/Arduboy2Audio.cpp

61 lines
1.0 KiB
C++

/**
* @file Arduboy2Audio.cpp
* \brief
* The Arduboy2Audio class for speaker and sound control.
*/
#include "Arduboy2.h"
#include "Arduboy2Audio.h"
bool Arduboy2Audio::audio_enabled = false;
void Arduboy2Audio::on()
{
// fire up audio pins by seting them as outputs
#ifdef ARDUBOY_10
bitSet(SPEAKER_1_DDR, SPEAKER_1_BIT);
bitSet(SPEAKER_2_DDR, SPEAKER_2_BIT);
#else
bitSet(SPEAKER_1_DDR, SPEAKER_1_BIT);
#endif
audio_enabled = true;
}
void Arduboy2Audio::off()
{
audio_enabled = false;
// shut off audio pins by setting them as inputs
#ifdef ARDUBOY_10
bitClear(SPEAKER_1_DDR, SPEAKER_1_BIT);
bitClear(SPEAKER_2_DDR, SPEAKER_2_BIT);
#else
bitClear(SPEAKER_1_DDR, SPEAKER_1_BIT);
#endif
}
void Arduboy2Audio::toggle()
{
if (audio_enabled)
off();
else
on();
}
void Arduboy2Audio::saveOnOff()
{
EEPROM.update(EEPROM_AUDIO_ON_OFF, audio_enabled);
}
void Arduboy2Audio::begin()
{
if (EEPROM.read(EEPROM_AUDIO_ON_OFF))
on();
else
off();
}
bool Arduboy2Audio::enabled()
{
return audio_enabled;
}