|
@ -876,24 +876,32 @@ void ST7920_Lite_Status_Screen::update_status_or_position(bool forceUpdate) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void ST7920_Lite_Status_Screen::update_progress(const bool forceUpdate) { |
|
|
void ST7920_Lite_Status_Screen::update_progress(const bool forceUpdate) { |
|
|
#if DISABLED(LCD_SET_PROGRESS_MANUALLY) |
|
|
#if ENABLED(LCD_SET_PROGRESS_MANUALLY) || ENABLED(SDSUPPORT) |
|
|
uint8_t progress_bar_percent = 0; |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(LCD_SET_PROGRESS_MANUALLY) && ENABLED(SDSUPPORT) && (ENABLED(LCD_PROGRESS_BAR) || ENABLED(DOGLCD)) |
|
|
#if DISABLED(LCD_SET_PROGRESS_MANUALLY) |
|
|
// Progress bar % comes from SD when actively printing
|
|
|
uint8_t progress_bar_percent; //=0
|
|
|
if (IS_SD_PRINTING) progress_bar_percent = card.percentDone(); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#if ENABLED(SDSUPPORT) |
|
|
|
|
|
// Progress bar % comes from SD when actively printing
|
|
|
|
|
|
if (IS_SD_PRINTING) progress_bar_percent = card.percentDone(); |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
// Since the progress bar involves writing
|
|
|
// Since the progress bar involves writing
|
|
|
// quite a few bytes to GDRAM, only do this
|
|
|
// quite a few bytes to GDRAM, only do this
|
|
|
// when an update is actually necessary.
|
|
|
// when an update is actually necessary.
|
|
|
|
|
|
|
|
|
|
|
|
static uint8_t last_progress = 0; |
|
|
|
|
|
if (!forceUpdate && last_progress == progress_bar_percent) return; |
|
|
|
|
|
last_progress = progress_bar_percent; |
|
|
|
|
|
|
|
|
|
|
|
draw_progress_bar(progress_bar_percent); |
|
|
|
|
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
|
static uint8_t last_progress = 0; |
|
|
UNUSED(forceUpdate); |
|
|
if (!forceUpdate && last_progress == progress_bar_percent) return; |
|
|
|
|
|
last_progress = progress_bar_percent; |
|
|
|
|
|
|
|
|
|
|
|
draw_progress_bar(progress_bar_percent); |
|
|
#endif // LCD_SET_PROGRESS_MANUALLY || SDSUPPORT
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void ST7920_Lite_Status_Screen::update(const bool forceUpdate) { |
|
|
void ST7920_Lite_Status_Screen::update(const bool forceUpdate) { |
|
|