|
|
@ -96,6 +96,7 @@ static void menu_action_setting_edit_callback_long5(const char* pstr, unsigned l |
|
|
|
if (encoderPosition > 0x8000) encoderPosition = 0; \ |
|
|
|
if (encoderPosition / ENCODER_STEPS_PER_MENU_ITEM < currentMenuViewOffset) currentMenuViewOffset = encoderPosition / ENCODER_STEPS_PER_MENU_ITEM;\ |
|
|
|
uint8_t _lineNr = currentMenuViewOffset, _menuItemNr; \ |
|
|
|
bool wasClicked = LCD_CLICKED;\ |
|
|
|
for(uint8_t _drawLineNr = 0; _drawLineNr < LCD_HEIGHT; _drawLineNr++, _lineNr++) { \ |
|
|
|
_menuItemNr = 0; |
|
|
|
#define MENU_ITEM(type, label, args...) do { \ |
|
|
@ -108,7 +109,7 @@ static void menu_action_setting_edit_callback_long5(const char* pstr, unsigned l |
|
|
|
lcd_implementation_drawmenu_ ## type (_drawLineNr, _label_pstr , ## args ); \ |
|
|
|
}\ |
|
|
|
}\ |
|
|
|
if (LCD_CLICKED && (encoderPosition / ENCODER_STEPS_PER_MENU_ITEM) == _menuItemNr) {\ |
|
|
|
if (wasClicked && (encoderPosition / ENCODER_STEPS_PER_MENU_ITEM) == _menuItemNr) {\ |
|
|
|
lcd_quick_feedback(); \ |
|
|
|
menu_action_ ## type ( args ); \ |
|
|
|
return;\ |
|
|
@ -694,6 +695,8 @@ static void lcd_sd_updir() |
|
|
|
|
|
|
|
void lcd_sdcard_menu() |
|
|
|
{ |
|
|
|
if (lcdDrawUpdate == 0 && LCD_CLICKED == 0) |
|
|
|
return; // nothing to do (so don't thrash the SD card)
|
|
|
|
uint16_t fileCnt = card.getnrfilenames(); |
|
|
|
START_MENU(); |
|
|
|
MENU_ITEM(back, MSG_MAIN, lcd_main_menu); |
|
|
|