diff --git a/360/frontend-xdk/menu.cpp b/360/frontend-xdk/menu.cpp index eab20a70d3..31f47ccb77 100644 --- a/360/frontend-xdk/menu.cpp +++ b/360/frontend-xdk/menu.cpp @@ -823,8 +823,8 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled if (g_console.emulator_initialized) rarch_settings_change(S_RETURN_TO_GAME); break; - case MENU_ITEM_RETURN_TO_DASHBOARD: - rarch_settings_change(S_RETURN_TO_DASHBOARD); + case MENU_ITEM_QUIT_RARCH: + rarch_settings_change(S_QUIT_RARCH); break; } } @@ -1028,7 +1028,7 @@ HRESULT CRetroArchMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled ) NavigateForward(app.hRetroArchSettings); } else if ( hObjPressed == m_quit ) - rarch_settings_change(S_RETURN_TO_DASHBOARD); + rarch_settings_change(S_QUIT_RARCH); bHandled = TRUE; return 0; diff --git a/console/rarch_console.h b/console/rarch_console.h index 15fefd4004..87d439ba2c 100644 --- a/console/rarch_console.h +++ b/console/rarch_console.h @@ -51,7 +51,8 @@ enum { #ifdef HAVE_MULTIMAN MENU_ITEM_RETURN_TO_MULTIMAN, #endif - MENU_ITEM_RETURN_TO_DASHBOARD + MENU_ITEM_QUIT_RARCH, + MENU_ITEM_LAST }; enum @@ -112,6 +113,4 @@ typedef struct extern default_paths_t default_paths; -#define MENU_ITEM_LAST MENU_ITEM_RETURN_TO_DASHBOARD+1 - #endif diff --git a/console/rarch_console_settings.c b/console/rarch_console_settings.c index cb17593e7c..c7fd2c4d55 100644 --- a/console/rarch_console_settings.c +++ b/console/rarch_console_settings.c @@ -92,7 +92,7 @@ void rarch_settings_change(unsigned setting) g_console.ingame_menu_enable = false; g_console.mode_switch = MODE_EXIT; break; - case S_RETURN_TO_DASHBOARD: + case S_QUIT_RARCH: g_console.menu_enable = false; g_console.initialize_rarch_enable = false; g_console.mode_switch = MODE_EXIT; diff --git a/console/rarch_console_settings.h b/console/rarch_console_settings.h index 3497aaf830..dd9460d52f 100644 --- a/console/rarch_console_settings.h +++ b/console/rarch_console_settings.h @@ -42,7 +42,7 @@ enum S_QUIT, S_RESOLUTION_PREVIOUS, S_RESOLUTION_NEXT, - S_RETURN_TO_DASHBOARD, + S_QUIT_RARCH, S_RETURN_TO_GAME, S_RETURN_TO_LAUNCHER, S_RETURN_TO_MENU, diff --git a/console/rmenu/rmenu.c b/console/rmenu/rmenu.c index 0973427cbd..e70b2d4e42 100644 --- a/console/rmenu/rmenu.c +++ b/console/rmenu/rmenu.c @@ -354,6 +354,11 @@ static void populate_setting_item(unsigned i, item *current_item) snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%s", fname); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Select a default libretro core to launch at start-up."); break; + case SETTING_QUIT_RARCH: + snprintf(current_item->text, sizeof(current_item->text), "Quit RetroArch and save settings "); + snprintf(current_item->setting_text, sizeof(current_item->setting_text), ""); + snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Quits RetroArch and saves the settings."); + break; case SETTING_EMU_AUDIO_MUTE: snprintf(current_item->text, sizeof(current_item->text), "Mute Audio"); snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.audio_data.mute ? "ON" : "OFF"); @@ -1317,6 +1322,12 @@ static void set_setting_action(menu *current_menu, unsigned switchvalue, uint64_ { } break; + case SETTING_QUIT_RARCH: + if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_B))) + { + rarch_settings_change(S_QUIT_RARCH); + } + break; case SETTING_EMU_AUDIO_MUTE: if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) rarch_settings_change(S_AUDIO_MUTE); @@ -2083,9 +2094,9 @@ static void ingame_menu(menu *current_menu, uint64_t input) snprintf(comment, sizeof(comment), "Press [%s] to quit RetroArch and return to multiMAN.", rarch_input_find_platform_key_label(1 << RETRO_DEVICE_ID_JOYPAD_B)); break; #endif - case MENU_ITEM_RETURN_TO_DASHBOARD: + case MENU_ITEM_QUIT_RARCH: if(input & (1 << RMENU_DEVICE_NAV_B)) - rarch_settings_change(S_RETURN_TO_DASHBOARD); + rarch_settings_change(S_QUIT_RARCH); snprintf(comment, sizeof(comment), "Press [%s] to quit RetroArch.", rarch_input_find_platform_key_label(1 << RETRO_DEVICE_ID_JOYPAD_B)); break; @@ -2150,7 +2161,7 @@ static void ingame_menu(menu *current_menu, uint64_t input) context->render_msg(default_pos.x_position, (default_pos.y_position+(default_pos.y_position_increment*MENU_ITEM_RETURN_TO_MULTIMAN)), default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_RETURN_TO_MULTIMAN), "Return to multiMAN"); #endif - context->render_msg(default_pos.x_position, (default_pos.y_position+(default_pos.y_position_increment*MENU_ITEM_RETURN_TO_DASHBOARD)), default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_RETURN_TO_DASHBOARD), "Return to Dashboard"); + context->render_msg(default_pos.x_position, (default_pos.y_position+(default_pos.y_position_increment*MENU_ITEM_QUIT_RARCH)), default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_QUIT_RARCH), "Quit RetroArch"); context->render_msg(default_pos.x_position, default_pos.comment_y_position, default_pos.font_size, WHITE, comment); @@ -2341,15 +2352,18 @@ void menu_loop(void) // if we want to force goto the emulation loop, skip this if(g_console.mode_switch != MODE_EMULATION) { + if(g_console.mode_switch == MODE_EXIT) + { + } // for ingame menu, we need a different precondition because menu_enable // can be set to false when going back from ingame menu to menu - if(g_console.ingame_menu_enable == true) + else if(g_console.ingame_menu_enable == true) { //we want to force exit when mode_switch is set to MODE_EXIT if(g_console.mode_switch != MODE_EXIT) g_console.mode_switch = (((old_state & (1 << RMENU_DEVICE_NAV_L3)) && (old_state & (1 << RMENU_DEVICE_NAV_R3)) && g_console.emulator_initialized)) ? MODE_EMULATION : MODE_MENU; } - else + else { g_console.menu_enable = !(((old_state & (1 << RMENU_DEVICE_NAV_L3)) && (old_state & (1 << RMENU_DEVICE_NAV_R3)) && g_console.emulator_initialized)); g_console.mode_switch = g_console.menu_enable ? MODE_MENU : MODE_EMULATION; diff --git a/console/rmenu/rmenu.h b/console/rmenu/rmenu.h index 78616721ee..094cbe9b12 100644 --- a/console/rmenu/rmenu.h +++ b/console/rmenu/rmenu.h @@ -163,6 +163,7 @@ enum SETTING_EMU_SHOW_INFO_MSG, SETTING_ZIP_EXTRACT, SETTING_RARCH_DEFAULT_EMU, + SETTING_QUIT_RARCH, SETTING_EMU_DEFAULT_ALL, SETTING_EMU_REWIND_ENABLED, SETTING_EMU_VIDEO_DEFAULT_ALL,