Add lbl screen backlight control toggle for overlay (in misc submenu) and memtester (press minus button)

This commit is contained in:
KazushiM
2022-05-08 19:54:23 +08:00
parent 9509455291
commit fd77dfa6eb
3 changed files with 76 additions and 11 deletions

View File

@@ -26,13 +26,6 @@ MiscGui::~MiscGui()
delete this->i2cInfo;
}
void MiscGui::preDraw(tsl::gfx::Renderer* render)
{
BaseMenuGui::preDraw(render);
render->drawString(this->infoOutput, false, 40, 440, SMALL_TEXT_SIZE, DESC_COLOR);
}
tsl::elm::ToggleListItem* MiscGui::addConfigToggle(SysClkConfigValue configVal, std::string labelName) {
tsl::elm::ToggleListItem* toggle = new tsl::elm::ToggleListItem(labelName, this->configList->values[configVal]);
toggle->setStateChangedListener([this, configVal](bool state) {
@@ -88,6 +81,17 @@ void MiscGui::listUI()
}
});
this->listElement->addItem(this->fastChargingToggle);
// Backlight
this->backlightToggle = new tsl::elm::ToggleListItem("Screen Backlight", false);
backlightToggle->setStateChangedListener([this](bool state) {
LblUpdate(true);
});
this->listElement->addItem(this->backlightToggle);
this->listElement->addItem(new tsl::elm::CustomDrawer([this](tsl::gfx::Renderer *renderer, s32 x, s32 y, s32 w, s32 h) {
renderer->drawString(this->infoOutput, false, x, y, SMALL_TEXT_SIZE, DESC_COLOR);
}), SMALL_TEXT_SIZE * 13);
}
void MiscGui::refresh() {
@@ -103,6 +107,8 @@ void MiscGui::refresh() {
{
frameCounter = 0;
PsmUpdate();
LblUpdate();
this->backlightToggle->setState(lblstatus);
I2cGetInfo(this->i2cInfo);
PrintInfo(this->infoOutput, sizeof(this->infoOutput));
this->chargingToggle->setState(this->PsmIsCharging());

View File

@@ -18,7 +18,6 @@ class MiscGui : public BaseMenuGui
public:
MiscGui();
~MiscGui();
void preDraw(tsl::gfx::Renderer* render) override;
void listUI() override;
void refresh() override;
@@ -307,14 +306,32 @@ class MiscGui : public BaseMenuGui
return PsmIsFastCharging() == enable;
}
void LblUpdate(bool shouldSwitch = false)
{
smInitialize();
lblInitialize();
lblGetBacklightSwitchStatus(&lblstatus);
if (shouldSwitch)
{
if (lblstatus) {
lblSwitchBacklightOff(0);
} else {
lblSwitchBacklightOn(0);
}
}
lblExit();
smExit();
}
tsl::elm::ToggleListItem* addConfigToggle(SysClkConfigValue, std::string);
void updateConfigToggle(tsl::elm::ToggleListItem*, SysClkConfigValue);
tsl::elm::ToggleListItem *cpuBoostToggle, *syncModeToggle, *chargingToggle, *fastChargingToggle;
tsl::elm::ToggleListItem *cpuBoostToggle, *syncModeToggle, *chargingToggle, *fastChargingToggle, *backlightToggle;
SysClkConfigValueList* configList;
ChargeInfo* chargeInfo;
I2cInfo* i2cInfo;
LblBacklightSwitchStatus lblstatus = LblBacklightSwitchStatus_Disabled;
bool isEnoughPowerSupplied = false;
char infoOutput[800] = "";
int frameCounter = 60;