From 0a11d29d8b9994c115e2249dea6d9ed7d96f41fc Mon Sep 17 00:00:00 2001 From: TuxSH <1922548+TuxSH@users.noreply.github.com> Date: Wed, 18 Sep 2024 22:36:04 +0200 Subject: [PATCH] rosalina: move power off/reboot back, in a single menu entry this time --- sysmodules/rosalina/include/menus.h | 2 + sysmodules/rosalina/include/menus/sysconfig.h | 2 - sysmodules/rosalina/source/menus.c | 37 ++++++++++++ sysmodules/rosalina/source/menus/sysconfig.c | 59 ------------------- 4 files changed, 39 insertions(+), 61 deletions(-) diff --git a/sysmodules/rosalina/include/menus.h b/sysmodules/rosalina/include/menus.h index 8e870fb1..ea9135b7 100644 --- a/sysmodules/rosalina/include/menus.h +++ b/sysmodules/rosalina/include/menus.h @@ -38,6 +38,8 @@ void RosalinaMenu_ProcessList(void); void RosalinaMenu_SaveSettings(void); void RosalinaMenu_Cheats(void); +void RosalinaMenu_PowerOffOrReboot(void); + void RosalinaMenu_ShowSystemInfo(); bool rosalinaMenuShouldShowDebugInfo(void); diff --git a/sysmodules/rosalina/include/menus/sysconfig.h b/sysmodules/rosalina/include/menus/sysconfig.h index 0fe1107a..c8023215 100644 --- a/sysmodules/rosalina/include/menus/sysconfig.h +++ b/sysmodules/rosalina/include/menus/sysconfig.h @@ -44,5 +44,3 @@ void SysConfigMenu_ToggleCardIfPower(void); void SysConfigMenu_LoadConfig(void); void SysConfigMenu_AdjustVolume(void); void SysConfigMenu_ChangeScreenBrightness(void); -void SysConfigMenu_PowerOff(void); -void SysConfigMenu_Reboot(void); diff --git a/sysmodules/rosalina/source/menus.c b/sysmodules/rosalina/source/menus.c index f107bf97..a6ce9fe0 100644 --- a/sysmodules/rosalina/source/menus.c +++ b/sysmodules/rosalina/source/menus.c @@ -55,6 +55,7 @@ Menu rosalinaMenu = { { "System configuration...", MENU, .menu = &sysconfigMenu }, { "Miscellaneous options...", MENU, .menu = &miscellaneousMenu }, { "Save settings", METHOD, .method = &RosalinaMenu_SaveSettings }, + { "Power off / reboot", METHOD, .method = &RosalinaMenu_PowerOffOrReboot }, { "System info", METHOD, .method = &RosalinaMenu_ShowSystemInfo }, { "Credits", METHOD, .method = &RosalinaMenu_ShowCredits }, { "Debug info", METHOD, .method = &RosalinaMenu_ShowDebugInfo, .visibility = &rosalinaMenuShouldShowDebugInfo }, @@ -93,6 +94,42 @@ void RosalinaMenu_SaveSettings(void) while(!(waitInput() & KEY_B) && !menuShouldExit); } +void RosalinaMenu_PowerOffOrReboot(void) +{ + Draw_Lock(); + Draw_ClearFramebuffer(); + Draw_FlushFramebuffer(); + Draw_Unlock(); + + do + { + Draw_Lock(); + Draw_DrawString(10, 10, COLOR_TITLE, "Power Off / Reboot"); + Draw_DrawString(10, 30, COLOR_WHITE, "Press A to power off.\nPress Y to reboot.\nPress B to go back."); + Draw_FlushFramebuffer(); + Draw_Unlock(); + + u32 pressed = waitInputWithTimeout(1000); + + if(pressed & KEY_Y) + { + menuLeave(); + APT_HardwareResetAsync(); + return; + } + else if(pressed & KEY_A) + { + // Soft shutdown + menuLeave(); + srvPublishToSubscriber(0x203, 0); + return; + } + else if(pressed & KEY_B) + return; + } + while(!menuShouldExit); +} + void RosalinaMenu_ShowSystemInfo(void) { u32 kver = osGetKernelVersion(); diff --git a/sysmodules/rosalina/source/menus/sysconfig.c b/sysmodules/rosalina/source/menus/sysconfig.c index 3baa4f9a..64244a51 100644 --- a/sysmodules/rosalina/source/menus/sysconfig.c +++ b/sysmodules/rosalina/source/menus/sysconfig.c @@ -44,8 +44,6 @@ Menu sysconfigMenu = { { "Toggle Power Button", METHOD, .method=&SysConfigMenu_TogglePowerButton }, { "Toggle power to card slot", METHOD, .method=&SysConfigMenu_ToggleCardIfPower}, { "Change screen brightness", METHOD, .method = &SysConfigMenu_ChangeScreenBrightness }, - { "Power off", METHOD, .method = &SysConfigMenu_PowerOff }, - { "Reboot", METHOD, .method = &SysConfigMenu_Reboot }, {}, } }; @@ -591,60 +589,3 @@ void SysConfigMenu_ChangeScreenBrightness(void) Draw_Unlock(); } - -void SysConfigMenu_PowerOff(void) // Soft shutdown. -{ - Draw_Lock(); - Draw_ClearFramebuffer(); - Draw_FlushFramebuffer(); - Draw_Unlock(); - - do - { - Draw_Lock(); - Draw_DrawString(10, 10, COLOR_TITLE, "Power off"); - Draw_DrawString(10, 30, COLOR_WHITE, "Press A to power off, press B to go back."); - Draw_FlushFramebuffer(); - Draw_Unlock(); - - u32 pressed = waitInputWithTimeout(1000); - - if(pressed & KEY_A) - { - menuLeave(); - srvPublishToSubscriber(0x203, 0); - return; - } - else if(pressed & KEY_B) - return; - } - while(!menuShouldExit); -} - -void SysConfigMenu_Reboot(void) -{ - Draw_Lock(); - Draw_ClearFramebuffer(); - Draw_FlushFramebuffer(); - Draw_Unlock(); - - do - { - Draw_Lock(); - Draw_DrawString(10, 10, COLOR_TITLE, "Reboot"); - Draw_DrawString(10, 30, COLOR_WHITE, "Press A to reboot, press B to go back."); - Draw_FlushFramebuffer(); - Draw_Unlock(); - - u32 pressed = waitInputWithTimeout(1000); - - if(pressed & KEY_A) - { - menuLeave(); - APT_HardwareResetAsync(); - return; - } else if(pressed & KEY_B) - return; - } - while(!menuShouldExit); -}