Browse Source

Maintain message scroll rate

pull/1/head
Scott Lahteine 8 years ago
parent
commit
bfe7fbe5c0
  1. 11
      Marlin/ultralcd_impl_DOGM.h
  2. 10
      Marlin/ultralcd_impl_HD44780.h

11
Marlin/ultralcd_impl_DOGM.h

@ -406,12 +406,17 @@ FORCE_INLINE void _draw_axis_label(const AxisEnum axis, const char* const pstr,
inline void lcd_implementation_status_message() {
#if ENABLED(STATUS_MESSAGE_SCROLLING)
static bool last_blink = false;
lcd_print_utf(lcd_status_message + status_scroll_pos);
const uint8_t slen = lcd_strlen(lcd_status_message);
if (slen > LCD_WIDTH) {
const bool new_blink = lcd_blink();
if (last_blink != new_blink) {
last_blink = new_blink;
// Skip any non-printing bytes
while (!PRINTABLE(lcd_status_message[status_scroll_pos++])) { /* nada */ }
if (status_scroll_pos > slen - LCD_WIDTH) status_scroll_pos = 0;
while (!PRINTABLE(lcd_status_message[status_scroll_pos])) status_scroll_pos++;
if (++status_scroll_pos > slen - LCD_WIDTH) status_scroll_pos = 0;
}
}
#else
lcd_print_utf(lcd_status_message);
@ -422,7 +427,7 @@ inline void lcd_implementation_status_message() {
static void lcd_implementation_status_screen() {
bool blink = lcd_blink();
const bool blink = lcd_blink();
// Status Menu Font
lcd_setFont(FONT_STATUSMENU);

10
Marlin/ultralcd_impl_HD44780.h

@ -655,7 +655,7 @@ Possible status screens:
|01234567890123456789|
*/
static void lcd_implementation_status_screen() {
bool blink = lcd_blink();
const bool blink = lcd_blink();
//
// Line 1
@ -825,12 +825,16 @@ static void lcd_implementation_status_screen() {
#endif // FILAMENT_LCD_DISPLAY && SDSUPPORT
#if ENABLED(STATUS_MESSAGE_SCROLLING)
static bool last_blink = false;
lcd_print_utf(lcd_status_message + status_scroll_pos);
const uint8_t slen = lcd_strlen(lcd_status_message);
if (slen > LCD_WIDTH) {
if (last_blink != blink) {
last_blink = blink;
// Skip any non-printing bytes
while (!PRINTABLE(lcd_status_message[status_scroll_pos++])) { /* nada */ }
if (status_scroll_pos > slen - LCD_WIDTH) status_scroll_pos = 0;
while (!PRINTABLE(lcd_status_message[status_scroll_pos])) status_scroll_pos++;
if (++status_scroll_pos > slen - LCD_WIDTH) status_scroll_pos = 0;
}
}
#else
lcd_print_utf(lcd_status_message);

Loading…
Cancel
Save