Reflow menu: Stop rendering the menu although nothing has changed. This reduces the current consumption.
This commit is contained in:
		@@ -109,6 +109,7 @@ static void reflow_menu_about(struct lcd_menu *menu, enum menu_entry_func_entry
 | 
			
		||||
	static void *my_parent;
 | 
			
		||||
	static bool button_ready;
 | 
			
		||||
	static int page = 0;
 | 
			
		||||
	static int last_page = -1;
 | 
			
		||||
	static uint32_t uptime_secs;
 | 
			
		||||
	uint32_t new_uptime_secs;
 | 
			
		||||
	uint32_t uptime_mins;
 | 
			
		||||
@@ -121,6 +122,7 @@ static void reflow_menu_about(struct lcd_menu *menu, enum menu_entry_func_entry
 | 
			
		||||
	if (entry_type == MENU_ENTRY_FIRST_ENTER) {
 | 
			
		||||
		uptime_secs = 0ULL;
 | 
			
		||||
		page = 0;
 | 
			
		||||
		last_page = -1;
 | 
			
		||||
		my_parent = parent;
 | 
			
		||||
		button_ready = false;
 | 
			
		||||
		menu_display_clear(menu);
 | 
			
		||||
@@ -144,12 +146,18 @@ static void reflow_menu_about(struct lcd_menu *menu, enum menu_entry_func_entry
 | 
			
		||||
 | 
			
		||||
	switch (page) {
 | 
			
		||||
	case 0:
 | 
			
		||||
		if (last_page == 0)
 | 
			
		||||
			break;
 | 
			
		||||
		last_page = 0;
 | 
			
		||||
		menu_lcd_output(menu, 0, LCD_SHIMATTA_STRING "    Shimatta");
 | 
			
		||||
		menu_lcd_output(menu, 1, "Oven Controller");
 | 
			
		||||
		menu_lcd_output(menu, 2, "(c) Mario H\xF5ttel");
 | 
			
		||||
		menu_lcd_output(menu, 3, "Page 1/5");
 | 
			
		||||
		break;
 | 
			
		||||
	case 1:
 | 
			
		||||
		if (last_page == 1)
 | 
			
		||||
			break;
 | 
			
		||||
		last_page = 1;
 | 
			
		||||
		menu_lcd_output(menu, 0, "Version Number:");
 | 
			
		||||
		menu_lcd_outputf(menu, 1, "%.*s", LCD_CHAR_WIDTH, xstr(GIT_VER));
 | 
			
		||||
		if (strlen(xstr(GIT_VER)) > LCD_CHAR_WIDTH) {
 | 
			
		||||
@@ -162,12 +170,18 @@ static void reflow_menu_about(struct lcd_menu *menu, enum menu_entry_func_entry
 | 
			
		||||
#endif
 | 
			
		||||
		break;
 | 
			
		||||
	case 2:
 | 
			
		||||
		if (last_page == 2)
 | 
			
		||||
			break;
 | 
			
		||||
		last_page = 2;
 | 
			
		||||
		menu_lcd_output(menu, 0, "Compile Info");
 | 
			
		||||
		menu_lcd_output(menu, 1, __DATE__);
 | 
			
		||||
		menu_lcd_output(menu, 2, __TIME__);
 | 
			
		||||
		menu_lcd_output(menu, 3, "Page 3/5");
 | 
			
		||||
		break;
 | 
			
		||||
	case 3:
 | 
			
		||||
		if (last_page == 3)
 | 
			
		||||
			break;
 | 
			
		||||
		last_page = 3;
 | 
			
		||||
		unique_id_get(&ser1, &ser2, &ser3);
 | 
			
		||||
 | 
			
		||||
		menu_lcd_outputf(menu, 0, "Serial: %08X", ser1);
 | 
			
		||||
@@ -187,6 +201,7 @@ static void reflow_menu_about(struct lcd_menu *menu, enum menu_entry_func_entry
 | 
			
		||||
		break;
 | 
			
		||||
	default:
 | 
			
		||||
		page = 0;
 | 
			
		||||
		last_page = -1;
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -206,7 +221,7 @@ static void reflow_menu_root_entry(struct lcd_menu *menu, enum menu_entry_func_e
 | 
			
		||||
	(void)parent;
 | 
			
		||||
	static struct menu_list list;
 | 
			
		||||
	static bool button_valid;
 | 
			
		||||
	static bool menu_changed = true;
 | 
			
		||||
	bool menu_changed = false;
 | 
			
		||||
	static const char * const root_entry_names[] = {
 | 
			
		||||
		"About",
 | 
			
		||||
		"Monitoring",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user