aod: switch to 8 colors when always on
This commit is contained in:
parent
e884b053d3
commit
5385f7e275
|
@ -249,6 +249,7 @@ void DisplayApp::Refresh() {
|
||||||
// Don't actually turn off the display for AlwaysOn mode
|
// Don't actually turn off the display for AlwaysOn mode
|
||||||
if (settingsController.GetAlwaysOnDisplay()) {
|
if (settingsController.GetAlwaysOnDisplay()) {
|
||||||
brightnessController.Set(Controllers::BrightnessController::Levels::AlwaysOn);
|
brightnessController.Set(Controllers::BrightnessController::Levels::AlwaysOn);
|
||||||
|
lcd.LowPowerOn();
|
||||||
} else {
|
} else {
|
||||||
brightnessController.Set(Controllers::BrightnessController::Levels::Off);
|
brightnessController.Set(Controllers::BrightnessController::Levels::Off);
|
||||||
lcd.Sleep();
|
lcd.Sleep();
|
||||||
|
@ -257,7 +258,11 @@ void DisplayApp::Refresh() {
|
||||||
state = States::Idle;
|
state = States::Idle;
|
||||||
break;
|
break;
|
||||||
case Messages::GoToRunning:
|
case Messages::GoToRunning:
|
||||||
lcd.Wakeup();
|
if (settingsController.GetAlwaysOnDisplay()) {
|
||||||
|
lcd.LowPowerOff();
|
||||||
|
} else {
|
||||||
|
lcd.Wakeup();
|
||||||
|
}
|
||||||
lv_disp_trig_activity(nullptr);
|
lv_disp_trig_activity(nullptr);
|
||||||
ApplyBrightness();
|
ApplyBrightness();
|
||||||
state = States::Running;
|
state = States::Running;
|
||||||
|
|
|
@ -127,6 +127,14 @@ void St7789::NormalModeOn() {
|
||||||
WriteCommand(static_cast<uint8_t>(Commands::NormalModeOn));
|
WriteCommand(static_cast<uint8_t>(Commands::NormalModeOn));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void St7789::IdleModeOn() {
|
||||||
|
WriteCommand(static_cast<uint8_t>(Commands::IdleModeOn));
|
||||||
|
}
|
||||||
|
|
||||||
|
void St7789::IdleModeOff() {
|
||||||
|
WriteCommand(static_cast<uint8_t>(Commands::IdleModeOff));
|
||||||
|
}
|
||||||
|
|
||||||
void St7789::DisplayOn() {
|
void St7789::DisplayOn() {
|
||||||
WriteCommand(static_cast<uint8_t>(Commands::DisplayOn));
|
WriteCommand(static_cast<uint8_t>(Commands::DisplayOn));
|
||||||
}
|
}
|
||||||
|
@ -198,6 +206,16 @@ void St7789::HardwareReset() {
|
||||||
vTaskDelay(pdMS_TO_TICKS(125));
|
vTaskDelay(pdMS_TO_TICKS(125));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void St7789::LowPowerOn() {
|
||||||
|
IdleModeOn();
|
||||||
|
NRF_LOG_INFO("[LCD] Low power mode");
|
||||||
|
}
|
||||||
|
|
||||||
|
void St7789::LowPowerOff() {
|
||||||
|
IdleModeOff();
|
||||||
|
NRF_LOG_INFO("[LCD] Normal power mode");
|
||||||
|
}
|
||||||
|
|
||||||
void St7789::Sleep() {
|
void St7789::Sleep() {
|
||||||
SleepIn();
|
SleepIn();
|
||||||
nrf_gpio_cfg_default(pinDataCommand);
|
nrf_gpio_cfg_default(pinDataCommand);
|
||||||
|
|
|
@ -24,6 +24,8 @@ namespace Pinetime {
|
||||||
|
|
||||||
void DrawBuffer(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint8_t* data, size_t size);
|
void DrawBuffer(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint8_t* data, size_t size);
|
||||||
|
|
||||||
|
void LowPowerOn();
|
||||||
|
void LowPowerOff();
|
||||||
void Sleep();
|
void Sleep();
|
||||||
void Wakeup();
|
void Wakeup();
|
||||||
|
|
||||||
|
@ -45,6 +47,8 @@ namespace Pinetime {
|
||||||
void DisplayInversionOn();
|
void DisplayInversionOn();
|
||||||
void NormalModeOn();
|
void NormalModeOn();
|
||||||
void WriteToRam(const uint8_t* data, size_t size);
|
void WriteToRam(const uint8_t* data, size_t size);
|
||||||
|
void IdleModeOn();
|
||||||
|
void IdleModeOff();
|
||||||
void DisplayOn();
|
void DisplayOn();
|
||||||
void DisplayOff();
|
void DisplayOff();
|
||||||
|
|
||||||
|
@ -68,6 +72,8 @@ namespace Pinetime {
|
||||||
MemoryDataAccessControl = 0x36,
|
MemoryDataAccessControl = 0x36,
|
||||||
VerticalScrollDefinition = 0x33,
|
VerticalScrollDefinition = 0x33,
|
||||||
VerticalScrollStartAddress = 0x37,
|
VerticalScrollStartAddress = 0x37,
|
||||||
|
IdleModeOff = 0x38,
|
||||||
|
IdleModeOn = 0x39,
|
||||||
PixelFormat = 0x3a,
|
PixelFormat = 0x3a,
|
||||||
VdvSet = 0xc4,
|
VdvSet = 0xc4,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue