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};
|
int testWorkerReport[4] = {0};
|
||||||
size_t bufsize[4], wantbytes[4];
|
size_t bufsize[4], wantbytes[4];
|
||||||
void volatile *aligned[4];
|
void volatile *aligned[4];
|
||||||
Thread threads[4];
|
Thread threads[5];
|
||||||
struct test* test_select = tests;
|
struct test* test_select = tests;
|
||||||
|
|
||||||
void testWorker(int div)
|
void testWorker(int div)
|
||||||
@@ -158,7 +158,8 @@ void testWorker(int div)
|
|||||||
while (testJobId[div] != currentJobId)
|
while (testJobId[div] != currentJobId)
|
||||||
svcSleepThread(10000000ULL);
|
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;
|
testWorkerReport[div] = 1;
|
||||||
currentJobId++;
|
currentJobId++;
|
||||||
@@ -184,6 +185,35 @@ void* workers[] = {
|
|||||||
testWorker3,
|
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
|
// Main program entrypoint
|
||||||
int main(int argc, char* argv[])
|
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);
|
printf("\nTotal RAM available: %lldMB\n\n", totalmem >> memshift);
|
||||||
consoleUpdate(NULL);
|
consoleUpdate(NULL);
|
||||||
|
|
||||||
|
|||||||
@@ -26,13 +26,6 @@ MiscGui::~MiscGui()
|
|||||||
delete this->i2cInfo;
|
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* MiscGui::addConfigToggle(SysClkConfigValue configVal, std::string labelName) {
|
||||||
tsl::elm::ToggleListItem* toggle = new tsl::elm::ToggleListItem(labelName, this->configList->values[configVal]);
|
tsl::elm::ToggleListItem* toggle = new tsl::elm::ToggleListItem(labelName, this->configList->values[configVal]);
|
||||||
toggle->setStateChangedListener([this, configVal](bool state) {
|
toggle->setStateChangedListener([this, configVal](bool state) {
|
||||||
@@ -88,6 +81,17 @@ void MiscGui::listUI()
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
this->listElement->addItem(this->fastChargingToggle);
|
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() {
|
void MiscGui::refresh() {
|
||||||
@@ -103,6 +107,8 @@ void MiscGui::refresh() {
|
|||||||
{
|
{
|
||||||
frameCounter = 0;
|
frameCounter = 0;
|
||||||
PsmUpdate();
|
PsmUpdate();
|
||||||
|
LblUpdate();
|
||||||
|
this->backlightToggle->setState(lblstatus);
|
||||||
I2cGetInfo(this->i2cInfo);
|
I2cGetInfo(this->i2cInfo);
|
||||||
PrintInfo(this->infoOutput, sizeof(this->infoOutput));
|
PrintInfo(this->infoOutput, sizeof(this->infoOutput));
|
||||||
this->chargingToggle->setState(this->PsmIsCharging());
|
this->chargingToggle->setState(this->PsmIsCharging());
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ class MiscGui : public BaseMenuGui
|
|||||||
public:
|
public:
|
||||||
MiscGui();
|
MiscGui();
|
||||||
~MiscGui();
|
~MiscGui();
|
||||||
void preDraw(tsl::gfx::Renderer* render) override;
|
|
||||||
void listUI() override;
|
void listUI() override;
|
||||||
void refresh() override;
|
void refresh() override;
|
||||||
|
|
||||||
@@ -307,14 +306,32 @@ class MiscGui : public BaseMenuGui
|
|||||||
return PsmIsFastCharging() == enable;
|
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);
|
tsl::elm::ToggleListItem* addConfigToggle(SysClkConfigValue, std::string);
|
||||||
void updateConfigToggle(tsl::elm::ToggleListItem*, SysClkConfigValue);
|
void updateConfigToggle(tsl::elm::ToggleListItem*, SysClkConfigValue);
|
||||||
|
|
||||||
tsl::elm::ToggleListItem *cpuBoostToggle, *syncModeToggle, *chargingToggle, *fastChargingToggle;
|
tsl::elm::ToggleListItem *cpuBoostToggle, *syncModeToggle, *chargingToggle, *fastChargingToggle, *backlightToggle;
|
||||||
|
|
||||||
SysClkConfigValueList* configList;
|
SysClkConfigValueList* configList;
|
||||||
ChargeInfo* chargeInfo;
|
ChargeInfo* chargeInfo;
|
||||||
I2cInfo* i2cInfo;
|
I2cInfo* i2cInfo;
|
||||||
|
LblBacklightSwitchStatus lblstatus = LblBacklightSwitchStatus_Disabled;
|
||||||
bool isEnoughPowerSupplied = false;
|
bool isEnoughPowerSupplied = false;
|
||||||
char infoOutput[800] = "";
|
char infoOutput[800] = "";
|
||||||
int frameCounter = 60;
|
int frameCounter = 60;
|
||||||
|
|||||||
Reference in New Issue
Block a user