optimisation: deduplicate more code

Change in memory:
Flash: -54 bytes
SRAM: 0 bytes
This commit is contained in:
gudnimg 2024-07-26 15:27:29 +00:00
parent b7caf36207
commit 75c980c4e7
1 changed files with 36 additions and 76 deletions

View File

@ -4214,25 +4214,6 @@ do\
}\ }\
while (0) while (0)
static void lcd_check_mode_set(void)
{
switch(oCheckMode)
{
case ClCheckMode::_None:
oCheckMode=ClCheckMode::_Warn;
break;
case ClCheckMode::_Warn:
oCheckMode=ClCheckMode::_Strict;
break;
case ClCheckMode::_Strict:
oCheckMode=ClCheckMode::_None;
break;
default:
oCheckMode=ClCheckMode::_None;
}
eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_MODE,(uint8_t)oCheckMode);
}
static void lcd_nozzle_diameter_cycle(void) { static void lcd_nozzle_diameter_cycle(void) {
uint16_t nDiameter; uint16_t nDiameter;
switch(oNozzleDiameter){ switch(oNozzleDiameter){
@ -4274,65 +4255,44 @@ do\
}\ }\
while (0) while (0)
static void lcd_check_model_set(void) static void lcd_check_update_RAM(ClCheckMode * oCheckSetting) {
{ switch(*oCheckSetting) {
switch(oCheckModel) case ClCheckMode::_None:
{ *oCheckSetting = ClCheckMode::_Warn;
case ClCheckMode::_None: break;
oCheckModel=ClCheckMode::_Warn; case ClCheckMode::_Warn:
break; *oCheckSetting = ClCheckMode::_Strict;
case ClCheckMode::_Warn: break;
oCheckModel=ClCheckMode::_Strict; case ClCheckMode::_Strict:
break; *oCheckSetting = ClCheckMode::_None;
case ClCheckMode::_Strict: break;
oCheckModel=ClCheckMode::_None; default:
break; *oCheckSetting = ClCheckMode::_None;
default: }
oCheckModel=ClCheckMode::_None;
}
eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_MODEL,(uint8_t)oCheckModel);
} }
static void lcd_check_version_set(void) static void lcd_check_mode_set() {
{ lcd_check_update_RAM(&oCheckMode);
switch(oCheckVersion) eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_MODE,(uint8_t)oCheckMode);
{
case ClCheckMode::_None:
oCheckVersion=ClCheckMode::_Warn;
break;
case ClCheckMode::_Warn:
oCheckVersion=ClCheckMode::_Strict;
break;
case ClCheckMode::_Strict:
oCheckVersion=ClCheckMode::_None;
break;
default:
oCheckVersion=ClCheckMode::_None;
}
eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_VERSION,(uint8_t)oCheckVersion);
} }
static void lcd_check_filament_set(void) static void lcd_check_model_set() {
{ lcd_check_update_RAM(&oCheckModel);
switch(oCheckFilament) eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_MODEL,(uint8_t)oCheckModel);
{
case ClCheckMode::_None:
oCheckFilament=ClCheckMode::_Warn;
break;
case ClCheckMode::_Warn:
oCheckFilament=ClCheckMode::_Strict;
break;
case ClCheckMode::_Strict:
oCheckFilament=ClCheckMode::_None;
break;
default:
oCheckFilament=ClCheckMode::_None;
}
eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_FILAMENT,(uint8_t)oCheckFilament);
} }
static void settings_check_toggle(ClCheckMode oCheckSetting, const char* msg, void (*func)(void)) { static void lcd_check_version_set() {
switch(oCheckSetting) { lcd_check_update_RAM(&oCheckVersion);
eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_VERSION,(uint8_t)oCheckVersion);
}
static void lcd_check_filament_set() {
lcd_check_update_RAM(&oCheckFilament);
eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_FILAMENT,(uint8_t)oCheckFilament);
}
static void settings_check_toggle(ClCheckMode * oCheckSetting, const char* msg, void (*func)(void)) {
switch(*oCheckSetting) {
case ClCheckMode::_None: case ClCheckMode::_None:
MENU_ITEM_TOGGLE_P(msg, _T(MSG_NONE), func); MENU_ITEM_TOGGLE_P(msg, _T(MSG_NONE), func);
break; break;
@ -4351,10 +4311,10 @@ static void lcd_checking_menu(void)
{ {
MENU_BEGIN(); MENU_BEGIN();
MENU_ITEM_BACK_P(_T(MSG_HW_SETUP)); MENU_ITEM_BACK_P(_T(MSG_HW_SETUP));
settings_check_toggle(oCheckMode, _T(MSG_NOZZLE), lcd_check_mode_set); settings_check_toggle(&oCheckMode, _T(MSG_NOZZLE), lcd_check_mode_set);
settings_check_toggle(oCheckModel, _T(MSG_MODEL), lcd_check_model_set); settings_check_toggle(&oCheckModel, _T(MSG_MODEL), lcd_check_model_set);
settings_check_toggle(oCheckVersion, MSG_FIRMWARE, lcd_check_version_set); settings_check_toggle(&oCheckVersion, MSG_FIRMWARE, lcd_check_version_set);
settings_check_toggle(oCheckFilament, MSG_FILAMENT, lcd_check_filament_set); settings_check_toggle(&oCheckFilament, MSG_FILAMENT, lcd_check_filament_set);
MENU_END(); MENU_END();
} }