master_clock/include/DisplayHandler.h

57 lines
938 B
C++

// DisplayHandler.h
#ifndef DisplayHandler_h
#define DisplayHandler_h
#include <cstdint>
#include <string>
#include <array>
#include "Gate.h"
class DisplayHandler {
private:
char buffer[32];
uint8_t currentScreen;
std::string screens[7];
std::array<std::string, 19> 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;
void renderMainPage();
void renderOutPage();
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 moveCursor(bool dir = 1);
};
#endif