1
0
Fork 0
mirror of https://github.com/DarkMatterCore/nxdumptool.git synced 2024-11-13 22:16:45 +00:00

Make B exit the app

This commit is contained in:
MCMrARM 2018-05-16 17:34:05 +02:00
parent c7ef15aab1
commit 497052d9df
3 changed files with 16 additions and 3 deletions

View file

@ -7,8 +7,13 @@
FsDeviceOperator fsOperatorInstance; FsDeviceOperator fsOperatorInstance;
bool shouldExit = false;
bool shouldWaitForAnyButton = false; bool shouldWaitForAnyButton = false;
void menuExit() {
shouldExit = true;
}
void menuWaitForAnyButton() { void menuWaitForAnyButton() {
printf(C_DIM "Press any button to return to menu\n"); printf(C_DIM "Press any button to return to menu\n");
shouldWaitForAnyButton = true; shouldWaitForAnyButton = true;
@ -40,7 +45,7 @@ int main(int argc, char **argv) {
return -1; return -1;
} }
menuSetCurrent(mainMenu); menuSetCurrent(mainMenu, menuExit);
while(appletMainLoop()) while(appletMainLoop())
{ {
@ -57,6 +62,8 @@ int main(int argc, char **argv) {
shouldWaitForAnyButton = false; shouldWaitForAnyButton = false;
menuPrint(); menuPrint();
} }
if (shouldExit)
break;
gfxFlushBuffers(); gfxFlushBuffers();
gfxSwapBuffers(); gfxSwapBuffers();

View file

@ -8,6 +8,7 @@ MenuItem* menuCurrent;
int menuCurrentCount; int menuCurrentCount;
bool menuCardIsInserted; bool menuCardIsInserted;
int menuSelIndex = 0; int menuSelIndex = 0;
void (*menuExitCallback)();
void menuPrint() { void menuPrint() {
consoleClear(); consoleClear();
@ -43,6 +44,10 @@ int menuHandleInput() {
menuCurrent[menuSelIndex].callback(); menuCurrent[menuSelIndex].callback();
return -1; return -1;
} }
if ((keys & KEY_B) && menuExitCallback != NULL) {
menuExitCallback();
return -1;
}
if (((keys & KEY_RSTICK_UP) | (keys & KEY_LSTICK_UP)) && menuSelIndex > 0) { if (((keys & KEY_RSTICK_UP) | (keys & KEY_LSTICK_UP)) && menuSelIndex > 0) {
menuSelIndex--; menuSelIndex--;
needsRefresh = true; needsRefresh = true;
@ -55,7 +60,8 @@ int menuHandleInput() {
} }
void menuSetCurrent(MenuItem* menuItems) { void menuSetCurrent(MenuItem* menuItems, void (*exitCallback)()) {
menuExitCallback = exitCallback;
menuCurrent = menuItems; menuCurrent = menuItems;
menuCurrentCount = 0; menuCurrentCount = 0;
while ((menuItems++)->text != NULL) while ((menuItems++)->text != NULL)

View file

@ -8,5 +8,5 @@ typedef struct {
} MenuItem; } MenuItem;
void menuPrint(); void menuPrint();
void menuSetCurrent(MenuItem* menuItems); void menuSetCurrent(MenuItem* menuItems, void (*exitCallback)());
void menuUpdate(FsDeviceOperator* fsOperator); void menuUpdate(FsDeviceOperator* fsOperator);