#ifndef SPECTRUM_H #define SPECTRUM_H #include "oneway.h" #include "gpio.h" #include "fifo.h" #include "fft.h" /** */ class Spectrum : public OneWay { static constexpr unsigned FFTSIZE = 1 << FFTORDER; GpioClass & led; FIFO & ring; const unsigned bhigh, bmiddle, blow; uint8_t cred, cgreen, cblue; const IFFT ifft; complex buffer [FFTSIZE]; public: explicit Spectrum (FIFO & ff, GpioClass & io) noexcept : OneWay(), led(io), ring(ff), bhigh (FFTSIZE >> 1), bmiddle(bhigh >> 1), blow (bmiddle >> 4), cred(0u), cgreen(0u), cblue(0u), ifft() {} unsigned int Send(uint16_t * const ptr, const unsigned int len) override; }; #endif // SPECTRUM_H