diff --git a/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp index ccca7d31..cfecd5dd 100644 --- a/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp @@ -28,6 +28,7 @@ #pragma message("Compiling with minimal features") #endif +class SysmoduleSettingsSubMenuGui; class DisplaySubMenuGui; class SafetySubMenuGui; class RamSubmenuGui; @@ -358,24 +359,16 @@ void MiscGui::listUI() std::vector noNamedValues = {}; this->listElement->addItem(new tsl::elm::CategoryHeader("Settings")); - std::vector ramVoltDispModes = { - NamedValue("VDD2 + VDDQ", RamDisplayMode_VDD2VDDQ), - NamedValue("VDD2 + Usage", RamDisplayMode_VDD2Usage), - NamedValue("VDDQ + Usage", RamDisplayMode_VDDQUsage), - }; + tsl::elm::ListItem* sysmoduleSettingsSubMenu = new tsl::elm::ListItem("Sysmodule Settings"); + sysmoduleSettingsSubMenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + this->listElement->addItem(sysmoduleSettingsSubMenu); - addConfigButton(HorizonOCConfigValue_RAMVoltUsageDisplayMode, "RAM Voltage Display Mode", ValueRange(0, 12, 1, "", 0), "RAM Voltage Display Mode", &thresholdsDisabled, {}, ramVoltDispModes, false); - - addConfigButton( - SysClkConfigValue_PollingIntervalMs, - "Polling Interval", - ValueRange(50, 1000, 50, "ms", 1), - "Polling Interval", - &thresholdsDisabled, - {}, - {}, - false - ); tsl::elm::ListItem* safetySubmenu = new tsl::elm::ListItem("Safety Settings"); safetySubmenu->setClickListener([](u64 keys) { if (keys & HidNpadButton_A) { @@ -539,6 +532,34 @@ void MiscGui::listUI() #endif } +class SysmoduleSettingsSubMenuGui : public MiscGui { +public: + SysmoduleSettingsSubMenuGui() { } + +protected: + void listUI() override { + ValueThresholds thresholdsDisabled(0, 0); + std::vector ramVoltDispModes = { + NamedValue("VDD2 + VDDQ", RamDisplayMode_VDD2VDDQ), + NamedValue("VDD2 + Usage", RamDisplayMode_VDD2Usage), + NamedValue("VDDQ + Usage", RamDisplayMode_VDDQUsage), + }; + + addConfigButton(HorizonOCConfigValue_RAMVoltUsageDisplayMode, "RAM Voltage Display Mode", ValueRange(0, 12, 1, "", 0), "RAM Voltage Display Mode", &thresholdsDisabled, {}, ramVoltDispModes, false); + + addConfigButton( + SysClkConfigValue_PollingIntervalMs, + "Polling Interval", + ValueRange(50, 1000, 50, "ms", 1), + "Polling Interval", + &thresholdsDisabled, + {}, + {}, + false + ); + } +}; + class DisplaySubMenuGui : public MiscGui { public: DisplaySubMenuGui() { }