Encapsulate common display code in a singleton (#12395)
* Encapsulate common LCD code in a singleton * Depend more UBL code on UBL_DEVEL_DEBUGGING - Since most users don't need the debugging on at all times, this helps reduce the default build size for UBL by over 2K, a little closer to fitting on 128K boards.
This commit is contained in:
@ -296,47 +296,23 @@
|
||||
#define ULTIPANEL
|
||||
#endif
|
||||
|
||||
#define HAS_GRAPHICAL_LCD ENABLED(DOGLCD)
|
||||
|
||||
#if HAS_GRAPHICAL_LCD
|
||||
#ifndef LCD_WIDTH
|
||||
#ifdef LCD_WIDTH_OVERRIDE
|
||||
#define LCD_WIDTH LCD_WIDTH_OVERRIDE
|
||||
#else
|
||||
#define LCD_WIDTH 22
|
||||
#endif
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
#define NEWPANEL // Disable this if you actually have no click-encoder panel
|
||||
#define ULTRA_LCD
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 20
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 4
|
||||
#endif
|
||||
#elif ENABLED(ULTRA_LCD) // no panel but just LCD
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 16
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 2
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Aliases for LCD features
|
||||
#define HAS_SPI_LCD ENABLED(ULTRA_LCD)
|
||||
#define HAS_CHARACTER_LCD (ENABLED(ULTRA_LCD) && DISABLED(DOGLCD))
|
||||
#define HAS_GRAPHICAL_LCD ENABLED(DOGLCD)
|
||||
#define HAS_CHARACTER_LCD (HAS_SPI_LCD && !HAS_GRAPHICAL_LCD)
|
||||
#define HAS_LCD_MENU (ENABLED(ULTIPANEL) && DISABLED(NO_LCD_MENUS))
|
||||
#define HAS_DIGITAL_ENCODER ENABLED(NEWPANEL)
|
||||
|
||||
#if HAS_GRAPHICAL_LCD
|
||||
/* Custom characters defined in font Marlin_symbols.fon which was merged to ISO10646-0-3.bdf */
|
||||
//
|
||||
// Custom characters from Marlin_symbols.fon which was merged into ISO10646-0-3.bdf
|
||||
// \x00 intentionally skipped to avoid problems in strings
|
||||
//
|
||||
#define LCD_STR_REFRESH "\x01"
|
||||
#define LCD_STR_FOLDER "\x02"
|
||||
#define LCD_STR_ARROW_RIGHT "\x03"
|
||||
@ -354,33 +330,18 @@
|
||||
// Symbol characters
|
||||
#define LCD_STR_FILAM_DIA "\xf8"
|
||||
#define LCD_STR_FILAM_MUL "\xa4"
|
||||
#else
|
||||
// Custom characters defined in the first 8 characters of the LCD
|
||||
#define LCD_BEDTEMP_CHAR 0x00 // Print only as a char. This will have 'unexpected' results when used in a string!
|
||||
#define LCD_DEGREE_CHAR 0x01
|
||||
#define LCD_STR_THERMOMETER "\x02" // Still used with string concatenation
|
||||
#define LCD_UPLEVEL_CHAR 0x03
|
||||
#define LCD_STR_REFRESH "\x04"
|
||||
#define LCD_STR_FOLDER "\x05"
|
||||
#define LCD_FEEDRATE_CHAR 0x06
|
||||
#define LCD_CLOCK_CHAR 0x07
|
||||
#define LCD_STR_ARROW_RIGHT ">" /* from the default character set */
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default LCD contrast for dogm-like LCD displays
|
||||
*/
|
||||
#if HAS_GRAPHICAL_LCD
|
||||
|
||||
#define HAS_LCD_CONTRAST ( \
|
||||
ENABLED(MAKRPANEL) \
|
||||
|| ENABLED(CARTESIO_UI) \
|
||||
|| ENABLED(VIKI2) \
|
||||
|| ENABLED(AZSMZ_12864) \
|
||||
|| ENABLED(miniVIKI) \
|
||||
|| ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \
|
||||
/**
|
||||
* Default LCD contrast for dogm-like LCD displays
|
||||
*/
|
||||
#define HAS_LCD_CONTRAST ( \
|
||||
ENABLED(MAKRPANEL) \
|
||||
|| ENABLED(CARTESIO_UI) \
|
||||
|| ENABLED(VIKI2) \
|
||||
|| ENABLED(AZSMZ_12864) \
|
||||
|| ENABLED(miniVIKI) \
|
||||
|| ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \
|
||||
)
|
||||
|
||||
#if HAS_LCD_CONTRAST
|
||||
#ifndef LCD_CONTRAST_MIN
|
||||
#define LCD_CONTRAST_MIN 0
|
||||
@ -392,6 +353,20 @@
|
||||
#define DEFAULT_LCD_CONTRAST 32
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
// Custom characters defined in the first 8 characters of the LCD
|
||||
#define LCD_BEDTEMP_CHAR 0x00 // Print only as a char. This will have 'unexpected' results when used in a string!
|
||||
#define LCD_DEGREE_CHAR 0x01
|
||||
#define LCD_STR_THERMOMETER "\x02" // Still used with string concatenation
|
||||
#define LCD_UPLEVEL_CHAR 0x03
|
||||
#define LCD_STR_REFRESH "\x04"
|
||||
#define LCD_STR_FOLDER "\x05"
|
||||
#define LCD_FEEDRATE_CHAR 0x06
|
||||
#define LCD_CLOCK_CHAR 0x07
|
||||
#define LCD_STR_ARROW_RIGHT ">" /* from the default character set */
|
||||
|
||||
#endif
|
||||
|
||||
// Boot screens
|
||||
|
@ -1628,3 +1628,39 @@
|
||||
#else
|
||||
#define Z_STEPPER_COUNT 1
|
||||
#endif
|
||||
|
||||
// Get LCD character width/height, which may be overridden by pins, configs, etc.
|
||||
#if HAS_GRAPHICAL_LCD
|
||||
#ifndef LCD_WIDTH
|
||||
#ifdef LCD_WIDTH_OVERRIDE
|
||||
#define LCD_WIDTH LCD_WIDTH_OVERRIDE
|
||||
#elif ENABLED(LIGHTWEIGHT_UI)
|
||||
#define LCD_WIDTH 16
|
||||
#else
|
||||
#define LCD_WIDTH 22
|
||||
#endif
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#ifdef LCD_HEIGHT_OVERRIDE
|
||||
#define LCD_HEIGHT LCD_HEIGHT_OVERRIDE
|
||||
#elif ENABLED(LIGHTWEIGHT_UI)
|
||||
#define LCD_HEIGHT 4
|
||||
#else
|
||||
#define LCD_HEIGHT 5
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(ULTIPANEL)
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 20
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 4
|
||||
#endif
|
||||
#elif HAS_SPI_LCD
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 16
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 2
|
||||
#endif
|
||||
#endif
|
||||
|
@ -491,6 +491,8 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
|
||||
#error "LCD_PROGRESS_BAR does not apply to graphical displays."
|
||||
#elif ENABLED(FILAMENT_LCD_DISPLAY)
|
||||
#error "LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both."
|
||||
#elif PROGRESS_MSG_EXPIRE < 0
|
||||
#error "PROGRESS_MSG_EXPIRE must be greater than or equal to 0."
|
||||
#endif
|
||||
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && !HAS_GRAPHICAL_LCD
|
||||
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR or Graphical LCD."
|
||||
|
Reference in New Issue
Block a user