#ifndef DRUMDUINO_H #define DRUMDUINO_H #include #include "ui_drumduino.h" #include "midi.h" #include "serial.h" #include "qcustomplot.h" enum State { StateAwait, StateScan, StateMask, }; class drumduino : public QMainWindow { Q_OBJECT public: drumduino(QWidget* parent = 0); ~drumduino(); private: Ui::drumduinoClass ui; std::vector _plots; qint64 _lasttime; private: std::shared_ptr _serial; std::shared_ptr _midiOut; uint64_t _currentFrame; std::array, PORT_CNT* CHAN_CNT> _frameBuffer; std::array _states; std::array _triggers; std::array _max; private: void serialRead(); void updateGraph(); void handleFrame(const std::array& frame, const uint64_t currentIndex); }; #endif // DRUMDUINO_H