// DisplayHandler.h #ifndef DisplayHandler_h #define DisplayHandler_h #include #include #include #include "Gate.h" class DisplayHandler { private: char buffer[32]; uint8_t currentScreen; std::string screens[7]; std::array out_pages = { "Exit", "Mod", "Shape", "Level", "Width", "Swing", "Prob", "Sticky", "CV1 ON", "CV1 SRC", "CV1 TO", "CV1 AMT", "CV1 INV", "CV2 ON", "CV2 SRC", "CV2 TO", "CV2 AMT", "CV2 INV", "Mute" }; bool onOutScreen = 0; bool onSettingsScreen = 0; std::array settings = { "Save", "Load", "Reset", "PPQN", "Run", "Exit" }; void renderMainPage(); void renderOutPage(); void renderSettingsPage(); public: DisplayHandler(Gate* outputs[]); Gate** outputs; bool updateScreen; int8_t cursorPosition; uint8_t mainMaxCursorPosition; uint8_t outMaxCursorPosition; int8_t currentOut; bool cursorClick; void setup(); void render(); void handleClick(); void exitSettingsScreen(); void flashMessage(std::string msg); void moveCursor(bool dir = 1); }; #endif