45 lines
751 B
C++
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;
|
|
}
|
|
}
|
|
|