#define EB_FAST_TIME 120
#include <GyverOLED.h>
#include <EncButton.h>
#include "GyverOLEDMenu.h"
EncButton eb(6, 7, 5, INPUT_PULLUP);
GyverOLED<SSD1306_128x64> oled;
OledMenu<2, GyverOLED<SSD1306_128x64>> menu(&oled);
int d_d = 50;
float tt1 = 0.5;
boolean lgh = true;
int tt4 = 1000;
void setup() {
oled.init();
Wire.setClock(400000L);
oled.clear();
oled.update();
menu.onChange(onItemChange, true);
menu.onPrintOverride(onItemPrintOverride); // if you need to do your own formatting of values
menu.addItem(PSTR("Brightness(%)"), GM_N_INT(1), &d_d, GM_N_INT(0), GM_N_INT(100)); // 3
menu.addItem(PSTR("LIGHTING"), &lgh); // page 2
menu.showMenu(true);
eb.attach(cb);
}
void onItemChange(const int index, const void* val, const byte valType) {
if (valType == VAL_ACTION) {
if (index == 0) {
menu.showMenu(false);
}
}
}
boolean onItemPrintOverride(const int index, const void* val, const byte valType) {
return false;
}
void cb() {
switch (eb.action()) {
case EB_TURN:
if (eb.dir() == 1) {
menu.selectPrev(eb.fast());
} else {
menu.selectNext(eb.fast());
}
break;
case EB_CLICK:
menu.toggleChangeSelected();
break;
}
}
void loop() {
eb.tick();
}