diff --git a/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.cpp b/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.cpp index bc1296f2f..0501bc635 100644 --- a/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.cpp +++ b/Marlin/src/lcd/extensible_ui/lib/dgus/DGUSDisplayDefinition.cpp @@ -200,7 +200,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { VPHELPER(VP_ZPos, ¤t_position.z, nullptr, DGUSScreenVariableHandler::DGUSLCD_SendFloatAsLongValueToDisplay<2>), // Print Progress. - VPHELPER(VP_PrintProgress_Percentage, &ui.progress_bar_percent, nullptr, DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay ), + VPHELPER(VP_PrintProgress_Percentage, &ui.progress_override, nullptr, DGUSScreenVariableHandler::DGUSLCD_SendWordValueToDisplay ), // Print Time VPHELPER_STR(VP_PrintTime, nullptr, VP_PrintTime_LEN, nullptr, DGUSScreenVariableHandler::DGUSLCD_SendPrintTimeToDisplay ), diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 9b6b47511..9ad92add0 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -61,7 +61,7 @@ #endif #if ENABLED(LCD_SET_PROGRESS_MANUALLY) - uint8_t MarlinUI::progress_bar_percent; // = 0 + uint8_t MarlinUI::progress_override; // = 0 #endif #if HAS_BUZZER @@ -1539,16 +1539,15 @@ void MarlinUI::update() { #if HAS_PRINT_PROGRESS uint8_t MarlinUI::get_progress() { #if ENABLED(LCD_SET_PROGRESS_MANUALLY) - uint8_t &progress = progress_bar_percent; - #define _PLIMIT(P) ((P) & 0x7F) + const uint8_t p = progress_override & 0x7F; #else - #define _PLIMIT(P) P - uint8_t progress = 0; + constexpr uint8_t p = 0; #endif - #if ENABLED(SDSUPPORT) - if (!_PLIMIT(progress)) progress = card.percentDone(); - #endif - return _PLIMIT(progress); + return (p + #if ENABLED(SDSUPPORT) + ?: card.percentDone() + #endif + ); } #endif diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h index c33337df8..72f6ec2cb 100644 --- a/Marlin/src/lcd/ultralcd.h +++ b/Marlin/src/lcd/ultralcd.h @@ -293,10 +293,10 @@ public: #if HAS_PRINT_PROGRESS #if ENABLED(LCD_SET_PROGRESS_MANUALLY) - static uint8_t progress_bar_percent; - static void set_progress(const uint8_t progress) { progress_bar_percent = _MIN(progress, 100); } + static uint8_t progress_override; + static void set_progress(const uint8_t progress) { progress_override = _MIN(progress, 100); } static void set_progress_done() { set_progress(0x80 + 100); } - static void progress_reset() { if (progress_bar_percent & 0x80) set_progress(0); } + static void progress_reset() { if (progress_override & 0x80) set_progress(0); } #endif static uint8_t get_progress(); #else