Followup to progress override (#15488)

This commit is contained in:
LinFor 2019-10-08 23:24:14 +03:00 committed by Scott Lahteine
parent d45ab47139
commit 58f81f8e7e
3 changed files with 12 additions and 13 deletions

View file

@ -200,7 +200,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_ZPos, &current_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 ),

View file

@ -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

View file

@ -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