eurorack/midi2cv/ui.cc

53 lines
1.1 KiB
C++

#include "ui.h"
#include "drivers/display.h"
#include "part.h"
#include "stmlib/utils/random.h"
#include <u8g2.h>
using namespace stmlib;
#define HEADER_HEIGHT 16
const char part_names[4][2] = { "A", "B", "C", "D" };
void UI::Update()
{
switch (current_menu) {
case MENU_PART_1:
case MENU_PART_2:
case MENU_PART_3:
case MENU_PART_4:
DrawHeader();
DrawPartMenu(current_menu);
break;
default:
break;
}
}
void UI::DrawHeader()
{
for (int i = 0; i < PART_COUNT; i++) {
u8g2_SetFontMode(display.u8g2(), 1);
u8g2_SetDrawColor(display.u8g2(), 1);
if (current_menu == i)
u8g2_DrawBox(display.u8g2(), i * (DISPLAY_WIDTH / PART_COUNT), 0, (DISPLAY_WIDTH / PART_COUNT), HEADER_HEIGHT);
else
u8g2_DrawFrame(display.u8g2(), i * (DISPLAY_WIDTH / PART_COUNT), 0, (DISPLAY_WIDTH / PART_COUNT), HEADER_HEIGHT);
u8g2_SetDrawColor(display.u8g2(), 2);
u8g2_DrawStr(display.u8g2(), i * (DISPLAY_WIDTH / PART_COUNT) + 2, 2, part_names[i]);
u8g2_SetDrawColor(display.u8g2(), 1);
}
}
void UI::DrawPartMenu(Menu_t menu)
{
}
void UI::Flush()
{
display.Flush();
}