#ifndef DACPLAYER_H #define DACPLAYER_H #include "oneway.h" #include "gpio.h" #include "tone.h" #include "audio.h" #include "pwmclass.h" #include "cache.h" /// Třída, která hraje čistě na pozadí. class MidiPlayer : public OneWay { // Veřejné metody public: /// Konstruktor explicit MidiPlayer (GpioClass & io) noexcept; unsigned Send (uint16_t * const ptr, const unsigned len) override; void stop (); void pass (); protected: // Chráněné metody /// Obsluha tónu void ToneChange (void); /// Obsluha vzorku short nextSample (void); /// Generuj vzorek pro všechny tóny @return Vzorek short genSample (void) { int res = 0; for (unsigned int i=0; i maxValue) res = maxValue; if (res < minValue) res = minValue; return (res); } private: GpioClass & led; Tone gens[maxGens]; /// Generátory tónů unsigned passcnt; volatile bool running; Cache scores; Cache melody; volatile int pause; }; #endif // DACPLAYER_H