tone-generator/buttons.cpp

45 lines
751 B
C++

#include <Arduino.h>
#include "buttons.hpp"
#include "scheduler.hpp"
#include "data.hpp"
#include "tones.hpp"
#include "dac.hpp"
#include "indicator.hpp"
const int PIN_NEXT = 8;
bool state_next = 1;
void buttons::init() {
pinMode(PIN_NEXT, INPUT_PULLUP);
}
static void on_next() {
switch(scheduler::state) {
case scheduler::State::play:
scheduler::state = scheduler::State::skip;
indicator::reset();
tones::clear_all();
dac::reset();
break;
case scheduler::State::pause:
scheduler::state = scheduler::State::play;
break;
}
}
void buttons::update() {
if(!digitalRead(PIN_NEXT) && state_next) {
delay(1);
state_next = 0;
}
else if(digitalRead(PIN_NEXT) && !state_next) {
delay(1);
on_next();
state_next = 1;
}
}