#include #include "buttons.hpp" #include "scheduler.hpp" #include "data.hpp" #include "tones.hpp" #include "dac.hpp" #include "indicator.hpp" const int PIN_NEXT = 8; static bool state_next = 1; static uint32_t addr_next = 0; 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(); data::jump(addr_next); 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; } } void buttons::set_addr_next(uint32_t addr) { addr_next = addr; }