Add lbl screen backlight control toggle for overlay (in misc submenu) and memtester (press minus button)
This commit is contained in:
@@ -124,7 +124,7 @@ int testJobId[4] = {0};
|
||||
int testWorkerReport[4] = {0};
|
||||
size_t bufsize[4], wantbytes[4];
|
||||
void volatile *aligned[4];
|
||||
Thread threads[4];
|
||||
Thread threads[5];
|
||||
struct test* test_select = tests;
|
||||
|
||||
void testWorker(int div)
|
||||
@@ -158,7 +158,8 @@ void testWorker(int div)
|
||||
while (testJobId[div] != currentJobId)
|
||||
svcSleepThread(10000000ULL);
|
||||
|
||||
if (!test_select[currentJobId].fp(aligned[div], ((size_t)aligned[div] + bufsize[div]/2), bufsize[div]/sizeof(ul)/2))
|
||||
int test_rc = test_select[currentJobId].fp(aligned[div], ((size_t)aligned[div] + bufsize[div]/2), bufsize[div]/sizeof(ul)/2);
|
||||
if (!test_rc)
|
||||
{
|
||||
testWorkerReport[div] = 1;
|
||||
currentJobId++;
|
||||
@@ -184,6 +185,35 @@ void* workers[] = {
|
||||
testWorker3,
|
||||
};
|
||||
|
||||
void LblUpdate()
|
||||
{
|
||||
smInitialize();
|
||||
lblInitialize();
|
||||
LblBacklightSwitchStatus lblstatus = LblBacklightSwitchStatus_Disabled;
|
||||
lblGetBacklightSwitchStatus(&lblstatus);
|
||||
if (lblstatus) {
|
||||
lblSwitchBacklightOff(0);
|
||||
} else {
|
||||
lblSwitchBacklightOn(0);
|
||||
}
|
||||
lblExit();
|
||||
smExit();
|
||||
}
|
||||
|
||||
void keyListener()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
padUpdate(&pad);
|
||||
u64 kDown = padGetButtonsDown(&pad);
|
||||
if (kDown & HidNpadButton_Minus)
|
||||
{
|
||||
LblUpdate();
|
||||
}
|
||||
svcSleepThread(10000000ULL);
|
||||
}
|
||||
}
|
||||
|
||||
// Main program entrypoint
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
@@ -314,6 +344,18 @@ int main(int argc, char* argv[])
|
||||
}
|
||||
}
|
||||
|
||||
// keyListener
|
||||
{
|
||||
const int kl = testThreads;
|
||||
Result rc = threadCreate(&threads[kl], keyListener, NULL, NULL, 0x1000, 0x20, -2);
|
||||
if (R_FAILED(rc))
|
||||
{
|
||||
printf("Fatal: threadCreate[%d] failed: 0x%X\n", div, rc);
|
||||
consoleUpdate(NULL);
|
||||
}
|
||||
threadStart(&threads[kl]);
|
||||
}
|
||||
|
||||
printf("\nTotal RAM available: %lldMB\n\n", totalmem >> memshift);
|
||||
consoleUpdate(NULL);
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user