1#include <ItemLabel.h>
2#include <LcdMenu.h>
3#include <MenuScreen.h>
4#include <display/LiquidCrystal_I2CAdapter.h>
5#include <input/KeyboardAdapter.h>
6#include <renderer/CharacterDisplayRenderer.h>
7
8#define LCD_ROWS 2
9#define LCD_COLS 16
10
11// Initialize the main menu items
12// clang-format off
13MENU_SCREEN(mainScreen, mainItems,
14 ITEM_LABEL("Main Menu"),
15 ITEM_BASIC("First option"),
16 ITEM_BASIC("Second option"));
17// clang-format on
18
19LiquidCrystal_I2C lcd(0x27, LCD_COLS, LCD_ROWS);
20CharacterDisplayRenderer renderer(new LiquidCrystal_I2CAdapter(&lcd), LCD_COLS, LCD_ROWS);
21LcdMenu menu(renderer);
22KeyboardAdapter keyboard(&menu, &Serial);
23
24void setup() {
25 Serial.begin(9600);
26 renderer.begin();
27 menu.setScreen(mainScreen);
28}
29
30void loop() {
31 keyboard.observe();
32}