Fix TFT_MESH settings across setting and recalling (#9234)
* Fix TFT_MESH settings across setting and recalling * Fix a word in documentation * Update src/graphics/Screen.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/graphics/Screen.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -312,6 +312,7 @@ Screen::Screen(ScanI2C::DeviceAddress address, meshtastic_Config_DisplayConfig_O
|
|||||||
|
|
||||||
// Only validate the combined value once
|
// Only validate the combined value once
|
||||||
if (rawRGB > 0 && rawRGB <= 255255255) {
|
if (rawRGB > 0 && rawRGB <= 255255255) {
|
||||||
|
LOG_INFO("Setting screen RGB color to user chosen: 0x%06X", rawRGB);
|
||||||
// Extract each component as a normal int first
|
// Extract each component as a normal int first
|
||||||
int r = (rawRGB >> 16) & 0xFF;
|
int r = (rawRGB >> 16) & 0xFF;
|
||||||
int g = (rawRGB >> 8) & 0xFF;
|
int g = (rawRGB >> 8) & 0xFF;
|
||||||
@@ -319,6 +320,16 @@ Screen::Screen(ScanI2C::DeviceAddress address, meshtastic_Config_DisplayConfig_O
|
|||||||
if (r >= 0 && r <= 255 && g >= 0 && g <= 255 && b >= 0 && b <= 255) {
|
if (r >= 0 && r <= 255 && g >= 0 && g <= 255 && b >= 0 && b <= 255) {
|
||||||
TFT_MESH = COLOR565(static_cast<uint8_t>(r), static_cast<uint8_t>(g), static_cast<uint8_t>(b));
|
TFT_MESH = COLOR565(static_cast<uint8_t>(r), static_cast<uint8_t>(g), static_cast<uint8_t>(b));
|
||||||
}
|
}
|
||||||
|
#ifdef TFT_MESH_OVERRIDE
|
||||||
|
} else if (rawRGB == 0) {
|
||||||
|
LOG_INFO("Setting screen RGB color to TFT_MESH_OVERRIDE: 0x%04X", TFT_MESH_OVERRIDE);
|
||||||
|
// Default to TFT_MESH_OVERRIDE if available
|
||||||
|
TFT_MESH = TFT_MESH_OVERRIDE;
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
// Default best readable yellow color
|
||||||
|
LOG_INFO("Setting screen RGB color to default: (255,255,128)");
|
||||||
|
TFT_MESH = COLOR565(255, 255, 128);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(USE_SH1106) || defined(USE_SH1107) || defined(USE_SH1107_128_64)
|
#if defined(USE_SH1106) || defined(USE_SH1107) || defined(USE_SH1107_128_64)
|
||||||
|
|||||||
@@ -1840,7 +1840,7 @@ void menuHandler::TFTColorPickerMenu(OLEDDisplay *display)
|
|||||||
static const ScreenColorOption colorOptions[] = {
|
static const ScreenColorOption colorOptions[] = {
|
||||||
{"Back", OptionsAction::Back},
|
{"Back", OptionsAction::Back},
|
||||||
{"Default", OptionsAction::Select, ScreenColor(0, 0, 0, true)},
|
{"Default", OptionsAction::Select, ScreenColor(0, 0, 0, true)},
|
||||||
{"Meshtastic Green", OptionsAction::Select, ScreenColor(103, 234, 148)},
|
{"Meshtastic Green", OptionsAction::Select, ScreenColor(0x67, 0xEA, 0x94)},
|
||||||
{"Yellow", OptionsAction::Select, ScreenColor(255, 255, 128)},
|
{"Yellow", OptionsAction::Select, ScreenColor(255, 255, 128)},
|
||||||
{"Red", OptionsAction::Select, ScreenColor(255, 64, 64)},
|
{"Red", OptionsAction::Select, ScreenColor(255, 64, 64)},
|
||||||
{"Orange", OptionsAction::Select, ScreenColor(255, 160, 20)},
|
{"Orange", OptionsAction::Select, ScreenColor(255, 160, 20)},
|
||||||
@@ -1890,7 +1890,7 @@ void menuHandler::TFTColorPickerMenu(OLEDDisplay *display)
|
|||||||
#ifdef TFT_MESH_OVERRIDE
|
#ifdef TFT_MESH_OVERRIDE
|
||||||
TFT_MESH = TFT_MESH_OVERRIDE;
|
TFT_MESH = TFT_MESH_OVERRIDE;
|
||||||
#else
|
#else
|
||||||
TFT_MESH = COLOR565(0x67, 0xEA, 0x94);
|
TFT_MESH = COLOR565(255, 255, 128);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
TFT_MESH = COLOR565(r, g, b);
|
TFT_MESH = COLOR565(r, g, b);
|
||||||
|
|||||||
Reference in New Issue
Block a user