diff --git a/firmware/basic/basic.h b/firmware/basic/basic.h index 0493eaa..008baef 100644 --- a/firmware/basic/basic.h +++ b/firmware/basic/basic.h @@ -180,6 +180,7 @@ struct MENU { }; #define MENU_TIMEOUT (1<<0) +#define MENU_JUSTONCE (1<<1) extern uint8_t menuflags; diff --git a/firmware/basic/menu.c b/firmware/basic/menu.c index 97b0b60..3b9a76a 100644 --- a/firmware/basic/menu.c +++ b/firmware/basic/menu.c @@ -68,6 +68,10 @@ void handleMenu(const struct MENU *the_menu) { case BTN_RIGHT: if (the_menu->entries[menuselection].callback!=NULL) the_menu->entries[menuselection].callback(); + + if (menuflags&MENU_JUSTONCE) + return; + break; case BTN_ENTER: lcdClear(); @@ -77,6 +81,10 @@ void handleMenu(const struct MENU *the_menu) { if (the_menu->entries[menuselection].callback!=NULL) the_menu->entries[menuselection].callback(); lcdRefresh(); + + if (menuflags&MENU_JUSTONCE) + return; + getInputWait(); break;