17 extern __flash
const char VOL_NAME[];
19 extern uint8_t lock_current_menu_item;
80 void (*edit)(int8_t d, uint16_t data);
81 void (*paint)(int32_t d);
88 #define _MI_SUBMENU(n,_sm) {.name = n, .type = MI_SUBMENU, .submenu = &_sm} 89 #define _MI_ONOFF(n,_onoff) {.name = n, .type = MI_ONOFF, .onoff = &_onoff} 90 #define _MI_SCALE(n,v,_min,_max,_step) {.name = n, .type = MI_SCALE, .u8 = &v, .u8_min = (_min), .u8_max = (_max), .step = (_step)} 91 #define _MI_U8(n,v,_min,_max,_step) {.name = n, .type = MI_U8, .u8 = &v, .u8_min = (_min), .u8_max = (_max), .step = (_step)} 92 #define _MI_S8(n,v,_min,_max,_step) {.name = n, .type = MI_S8, .s8 = &v, .s8_min = (_min), .s8_max = (_max), .step = (_step)} 93 #define _MI_U16(n,v,_min,_max,_step) {.name = n, .type = MI_U16, .u16 = &v, .u16_min = (_min), .u16_max = (_max), .step = (_step)} 94 #define _MI_S16(n,v,_min,_max,_step) {.name = n, .type = MI_S16, .s16 = &v, .s16_min = (_min), .s16_max = (_max), .step = (_step)} 95 #define _MI_USER(n,_edit,_paint,_action,_data) {.name = n, .type = MI_USER, .edit = _edit, .paint = _paint, .action = _action, .data = (uint16_t)(_data)} 97 #define _MENU(mi) {.item_count = sizeof(mi) / sizeof(menu_item_t), .items = mi} 98 #define FLASH_MENU(id,mi) __flash const menu_t id = _MENU(mi) 99 #define RAM_MENU(id,mi) const menu_t id = _MENU(mi) 108 #define MENU_TIMEOUT 1500 110 extern __flash
const menu_t main_menu;
115 void reset_menu_timeout(
void);
117 void show_press_encoder_msg(int32_t d);
119 extern __flash
const menu_t *current_menu;