(RMenu / RARCH_CONSOLE) Move more g_console state to g_extern

This commit is contained in:
twinaphex 2012-10-14 20:34:16 +02:00
parent e5c24f963a
commit fc17456581
12 changed files with 114 additions and 109 deletions

View File

@ -109,7 +109,7 @@ void rarch_config_load(const char *conf_name, bool upgrade_core_succeeded)
#endif #endif
CONFIG_GET_BOOL_CONSOLE(soft_display_filter_enable, "soft_display_filter_enable"); CONFIG_GET_BOOL_CONSOLE(soft_display_filter_enable, "soft_display_filter_enable");
CONFIG_GET_STRING_CONSOLE(default_rom_startup_dir, "default_rom_startup_dir"); CONFIG_GET_STRING_CONSOLE(default_rom_startup_dir, "default_rom_startup_dir");
CONFIG_GET_FLOAT_CONSOLE(menu_font_size, "menu_font_size"); CONFIG_GET_FLOAT_EXTERN(console.font_size, "menu_font_size");
CONFIG_GET_FLOAT_CONSOLE(overscan_amount, "overscan_amount"); CONFIG_GET_FLOAT_CONSOLE(overscan_amount, "overscan_amount");
// g_extern // g_extern
@ -192,7 +192,7 @@ void rarch_config_save(const char * conf_name)
config_set_int(conf, "custom_viewport_y", g_console.viewports.custom_vp.y); config_set_int(conf, "custom_viewport_y", g_console.viewports.custom_vp.y);
config_set_int(conf, "screen_orientation", g_console.screen_orientation); config_set_int(conf, "screen_orientation", g_console.screen_orientation);
config_set_string(conf, "default_rom_startup_dir", g_console.default_rom_startup_dir); config_set_string(conf, "default_rom_startup_dir", g_console.default_rom_startup_dir);
config_set_float(conf, "menu_font_size", g_console.menu_font_size); config_set_float(conf, "menu_font_size", g_extern.console.font_size);
config_set_float(conf, "overscan_amount", g_console.overscan_amount); config_set_float(conf, "overscan_amount", g_console.overscan_amount);
#ifdef HAVE_ZLIB #ifdef HAVE_ZLIB
config_set_int(conf, "zip_extract_mode", g_console.zip_extract_mode); config_set_int(conf, "zip_extract_mode", g_console.zip_extract_mode);

View File

@ -94,7 +94,7 @@ bool rarch_startup (const char * config_path)
args.config_path = config_path; args.config_path = config_path;
args.sram_path = g_console.default_sram_dir_enable ? g_console.default_sram_dir : NULL, args.sram_path = g_console.default_sram_dir_enable ? g_console.default_sram_dir : NULL,
args.state_path = g_console.default_savestate_dir_enable ? g_console.default_savestate_dir : NULL, args.state_path = g_console.default_savestate_dir_enable ? g_console.default_savestate_dir : NULL,
args.rom_path = g_console.rom_path; args.rom_path = g_extern.filebrowser_state.rom_path;
#ifdef HAVE_DYLIB #ifdef HAVE_DYLIB
args.libretro_path = g_settings.libretro; args.libretro_path = g_settings.libretro;
#endif #endif
@ -112,7 +112,7 @@ bool rarch_startup (const char * config_path)
{ {
//failed to load the ROM for whatever reason //failed to load the ROM for whatever reason
g_console.emulator_initialized = 0; g_console.emulator_initialized = 0;
g_console.mode_switch = MODE_MENU; g_extern.console.mode = MODE_MENU;
rarch_settings_msg(S_MSG_ROM_LOADING_ERROR, S_DELAY_180); rarch_settings_msg(S_MSG_ROM_LOADING_ERROR, S_DELAY_180);
} }
} }

View File

@ -34,7 +34,7 @@
static void rarch_console_load_game(const char *path) static void rarch_console_load_game(const char *path)
{ {
snprintf(g_console.rom_path, sizeof(g_console.rom_path), path); snprintf(g_extern.filebrowser_state.rom_path, sizeof(g_extern.filebrowser_state.rom_path), path);
rarch_settings_change(S_START_RARCH); rarch_settings_change(S_START_RARCH);
} }

View File

@ -51,9 +51,9 @@ void rarch_settings_change(unsigned setting)
g_settings.audio.rate_control = true; g_settings.audio.rate_control = true;
break; break;
case S_FRAME_ADVANCE: case S_FRAME_ADVANCE:
g_console.frame_advance_enable = true; g_extern.console.frame_advance_enable = true;
g_console.menu_enable = false; g_extern.console.enable = false;
g_console.mode_switch = MODE_EMULATION; g_extern.console.mode = MODE_EMULATION;
break; break;
case S_HW_TEXTURE_FILTER: case S_HW_TEXTURE_FILTER:
g_settings.video.smooth = !g_settings.video.smooth; g_settings.video.smooth = !g_settings.video.smooth;
@ -88,31 +88,30 @@ void rarch_settings_change(unsigned setting)
} }
break; break;
case S_QUIT: case S_QUIT:
g_console.menu_enable = false; g_extern.console.enable = false;
g_console.ingame_menu_enable = false; g_extern.console.ingame_menu_enable = false;
g_console.mode_switch = MODE_EXIT; g_extern.console.mode = MODE_EXIT;
break; break;
case S_QUIT_RARCH: case S_QUIT_RARCH:
g_console.menu_enable = false; g_extern.console.enable = false;
g_console.initialize_rarch_enable = false; g_console.initialize_rarch_enable = false;
g_console.mode_switch = MODE_EXIT; g_extern.console.mode = MODE_EXIT;
break; break;
case S_RETURN_TO_GAME: case S_RETURN_TO_GAME:
g_console.frame_advance_enable = false; g_extern.console.frame_advance_enable = false;
//g_console.ingame_menu_item = 0; g_extern.console.enable = false;
g_console.menu_enable = false; g_extern.console.mode = MODE_EMULATION;
g_console.mode_switch = MODE_EMULATION;
break; break;
case S_RETURN_TO_LAUNCHER: case S_RETURN_TO_LAUNCHER:
g_console.return_to_launcher = true; g_console.return_to_launcher = true;
g_console.menu_enable = false; g_extern.console.enable = false;
g_console.initialize_rarch_enable = false; g_console.initialize_rarch_enable = false;
g_console.mode_switch = MODE_EXIT; g_extern.console.mode = MODE_EXIT;
break; break;
case S_RETURN_TO_MENU: case S_RETURN_TO_MENU:
g_console.menu_enable = false; g_extern.console.enable = false;
g_console.ingame_menu_item = 0; g_extern.console.ingame_menu_item = 0;
g_console.mode_switch = MODE_MENU; g_extern.console.mode = MODE_MENU;
break; break;
case S_ROTATION_DECREMENT: case S_ROTATION_DECREMENT:
if(g_console.screen_orientation > 0) if(g_console.screen_orientation > 0)
@ -123,9 +122,9 @@ void rarch_settings_change(unsigned setting)
g_console.screen_orientation++; g_console.screen_orientation++;
break; break;
case S_START_RARCH: case S_START_RARCH:
g_console.menu_enable = false; g_extern.console.enable = false;
g_console.initialize_rarch_enable = 1; g_console.initialize_rarch_enable = 1;
g_console.mode_switch = MODE_EMULATION; g_extern.console.mode = MODE_EMULATION;
break; break;
case S_REWIND: case S_REWIND:
g_settings.rewind_enable = !g_settings.rewind_enable; g_settings.rewind_enable = !g_settings.rewind_enable;
@ -244,7 +243,7 @@ void rarch_settings_msg(unsigned setting, unsigned delay)
} }
break; break;
case S_MSG_LOADING_ROM: case S_MSG_LOADING_ROM:
fill_pathname_base(tmp, g_console.rom_path, sizeof(tmp)); fill_pathname_base(tmp, g_extern.filebrowser_state.rom_path, sizeof(tmp));
snprintf(str, sizeof(str), "INFO - Loading %s...", tmp); snprintf(str, sizeof(str), "INFO - Loading %s...", tmp);
break; break;
case S_MSG_DIR_LOADING_ERROR: case S_MSG_DIR_LOADING_ERROR:
@ -376,7 +375,7 @@ void rarch_settings_set_default(void)
// g_console // g_console
g_console.block_config_read = true; g_console.block_config_read = true;
g_console.frame_advance_enable = false; g_extern.console.frame_advance_enable = false;
g_console.emulator_initialized = 0; g_console.emulator_initialized = 0;
g_console.screenshots_enable = true; g_console.screenshots_enable = true;
g_console.throttle_enable = true; g_console.throttle_enable = true;
@ -391,14 +390,14 @@ void rarch_settings_set_default(void)
g_console.fbo_enabled = false; g_console.fbo_enabled = false;
#endif #endif
g_console.mode_switch = MODE_MENU; g_extern.console.mode = MODE_MENU;
g_console.screen_orientation = ORIENTATION_NORMAL; g_console.screen_orientation = ORIENTATION_NORMAL;
g_console.current_resolution_id = 0; g_console.current_resolution_id = 0;
strlcpy(g_console.default_rom_startup_dir, default_paths.filebrowser_startup_dir, sizeof(g_console.default_rom_startup_dir)); strlcpy(g_console.default_rom_startup_dir, default_paths.filebrowser_startup_dir, sizeof(g_console.default_rom_startup_dir));
strlcpy(g_console.default_savestate_dir, default_paths.savestate_dir, sizeof(g_console.default_savestate_dir)); strlcpy(g_console.default_savestate_dir, default_paths.savestate_dir, sizeof(g_console.default_savestate_dir));
strlcpy(g_console.default_sram_dir, default_paths.sram_dir, sizeof(g_console.default_sram_dir)); strlcpy(g_console.default_sram_dir, default_paths.sram_dir, sizeof(g_console.default_sram_dir));
g_console.aspect_ratio_index = 0; g_console.aspect_ratio_index = 0;
g_console.menu_font_size = 1.0f; g_extern.console.font_size = 1.0f;
g_console.overscan_enable = false; g_console.overscan_enable = false;
g_console.overscan_amount = 0.0f; g_console.overscan_amount = 0.0f;
g_console.sound_mode = SOUND_MODE_NORMAL; g_console.sound_mode = SOUND_MODE_NORMAL;

View File

@ -43,7 +43,7 @@
#define CURRENT_PATH_Y_POSITION 0.15f #define CURRENT_PATH_Y_POSITION 0.15f
#define CURRENT_PATH_FONT_SIZE FONT_SIZE #define CURRENT_PATH_FONT_SIZE FONT_SIZE
#define FONT_SIZE (g_console.menu_font_size) #define FONT_SIZE (g_extern.console.font_size)
#define NUM_ENTRY_PER_PAGE 15 #define NUM_ENTRY_PER_PAGE 15

View File

@ -182,7 +182,7 @@ static void populate_setting_item(unsigned i, item *current_item)
#endif #endif
case SETTING_FONT_SIZE: case SETTING_FONT_SIZE:
snprintf(current_item->text, sizeof(current_item->text), "Font Size"); snprintf(current_item->text, sizeof(current_item->text), "Font Size");
snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%f", g_console.menu_font_size); snprintf(current_item->setting_text, sizeof(current_item->setting_text), "%f", g_extern.console.font_size);
snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Increase or decrease the [Font Size]."); snprintf(current_item->comment, sizeof(current_item->comment), "INFO - Increase or decrease the [Font Size].");
break; break;
case SETTING_KEEP_ASPECT_RATIO: case SETTING_KEEP_ASPECT_RATIO:
@ -999,16 +999,16 @@ static void set_setting_action(menu *current_menu, unsigned switchvalue, uint64_
case SETTING_FONT_SIZE: case SETTING_FONT_SIZE:
if(input & (1 << RMENU_DEVICE_NAV_LEFT)) if(input & (1 << RMENU_DEVICE_NAV_LEFT))
{ {
if(g_console.menu_font_size > 0) if(g_extern.console.font_size > 0)
g_console.menu_font_size -= 0.01f; g_extern.console.font_size -= 0.01f;
} }
if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B))) if((input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)))
{ {
if((g_console.menu_font_size < 2.0f)) if((g_extern.console.font_size < 2.0f))
g_console.menu_font_size += 0.01f; g_extern.console.font_size += 0.01f;
} }
if(input & (1 << RMENU_DEVICE_NAV_START)) if(input & (1 << RMENU_DEVICE_NAV_START))
g_console.menu_font_size = 1.0f; g_extern.console.font_size = 1.0f;
break; break;
case SETTING_KEEP_ASPECT_RATIO: case SETTING_KEEP_ASPECT_RATIO:
if(input & (1 << RMENU_DEVICE_NAV_LEFT)) if(input & (1 << RMENU_DEVICE_NAV_LEFT))
@ -1920,7 +1920,7 @@ static void ingame_menu_screenshot(menu *current_menu, uint64_t input)
{ {
(void)current_menu; (void)current_menu;
if(g_console.ingame_menu_enable) if(g_extern.console.ingame_menu_enable)
{ {
if(input & (1 << RMENU_DEVICE_NAV_A)) if(input & (1 << RMENU_DEVICE_NAV_A))
{ {
@ -1946,12 +1946,12 @@ static void ingame_menu(menu *current_menu, uint64_t input)
for(int i = 0; i < MENU_ITEM_LAST; i++) for(int i = 0; i < MENU_ITEM_LAST; i++)
menuitem_colors[i] = WHITE; menuitem_colors[i] = WHITE;
menuitem_colors[g_console.ingame_menu_item] = RED; menuitem_colors[g_extern.console.ingame_menu_item] = RED;
if(input & (1 << RMENU_DEVICE_NAV_A)) if(input & (1 << RMENU_DEVICE_NAV_A))
rarch_settings_change(S_RETURN_TO_GAME); rarch_settings_change(S_RETURN_TO_GAME);
switch(g_console.ingame_menu_item) switch(g_extern.console.ingame_menu_item)
{ {
case MENU_ITEM_LOAD_STATE: case MENU_ITEM_LOAD_STATE:
if(input & (1 << RMENU_DEVICE_NAV_B)) if(input & (1 << RMENU_DEVICE_NAV_B))
@ -2018,7 +2018,7 @@ static void ingame_menu(menu *current_menu, uint64_t input)
if((input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_R2)) || (input & (1 << RMENU_DEVICE_NAV_L2))) if((input & (1 << RMENU_DEVICE_NAV_B)) || (input & (1 << RMENU_DEVICE_NAV_R2)) || (input & (1 << RMENU_DEVICE_NAV_L2)))
{ {
rarch_settings_change(S_FRAME_ADVANCE); rarch_settings_change(S_FRAME_ADVANCE);
g_console.ingame_menu_item = MENU_ITEM_FRAME_ADVANCE; g_extern.console.ingame_menu_item = MENU_ITEM_FRAME_ADVANCE;
} }
snprintf(comment, sizeof(comment), "Press [%s] to step one frame.", rarch_input_find_platform_key_label(1 << RETRO_DEVICE_ID_JOYPAD_B)); snprintf(comment, sizeof(comment), "Press [%s] to step one frame.", rarch_input_find_platform_key_label(1 << RETRO_DEVICE_ID_JOYPAD_B));
break; break;
@ -2084,18 +2084,18 @@ static void ingame_menu(menu *current_menu, uint64_t input)
if(input & (1 << RMENU_DEVICE_NAV_UP)) if(input & (1 << RMENU_DEVICE_NAV_UP))
{ {
if(g_console.ingame_menu_item > 0) if(g_extern.console.ingame_menu_item > 0)
g_console.ingame_menu_item--; g_extern.console.ingame_menu_item--;
else else
g_console.ingame_menu_item = MENU_ITEM_LAST - 1; g_extern.console.ingame_menu_item = MENU_ITEM_LAST - 1;
} }
if(input & (1 << RMENU_DEVICE_NAV_DOWN)) if(input & (1 << RMENU_DEVICE_NAV_DOWN))
{ {
if(g_console.ingame_menu_item < (MENU_ITEM_LAST-1)) if(g_extern.console.ingame_menu_item < (MENU_ITEM_LAST-1))
g_console.ingame_menu_item++; g_extern.console.ingame_menu_item++;
else else
g_console.ingame_menu_item = 0; g_extern.console.ingame_menu_item = 0;
} }
if((input & (1 << RMENU_DEVICE_NAV_L3)) && (input & (1 << RMENU_DEVICE_NAV_R3))) if((input & (1 << RMENU_DEVICE_NAV_L3)) && (input & (1 << RMENU_DEVICE_NAV_R3)))
@ -2147,7 +2147,7 @@ static void ingame_menu(menu *current_menu, uint64_t input)
rmenu_position_t position = {0}; rmenu_position_t position = {0};
position.x = default_pos.x_position; position.x = default_pos.x_position;
position.y = (default_pos.y_position+(default_pos.y_position_increment*g_console.ingame_menu_item)); position.y = (default_pos.y_position+(default_pos.y_position_increment * g_extern.console.ingame_menu_item));
context->render_selection_panel(&position); context->render_selection_panel(&position);
} }
@ -2190,10 +2190,10 @@ void menu_loop(void)
{ {
DEVICE_CAST device_ptr = (DEVICE_CAST)driver.video_data; DEVICE_CAST device_ptr = (DEVICE_CAST)driver.video_data;
g_console.menu_enable = true; g_extern.console.enable = true;
device_ptr->block_swap = true; device_ptr->block_swap = true;
if(g_console.ingame_menu_enable) if(g_extern.console.ingame_menu_enable)
menu_stack_push(INGAME_MENU); menu_stack_push(INGAME_MENU);
context->init_textures(); context->init_textures();
@ -2303,7 +2303,7 @@ void menu_loop(void)
fb = &tmpBrowser; fb = &tmpBrowser;
break; break;
case INGAME_MENU: case INGAME_MENU:
if(g_console.ingame_menu_enable) if(g_extern.console.ingame_menu_enable)
ingame_menu(&current_menu, trig_state); ingame_menu(&current_menu, trig_state);
break; break;
case INGAME_MENU_RESIZE: case INGAME_MENU_RESIZE:
@ -2330,30 +2330,30 @@ void menu_loop(void)
if(IS_TIMER_EXPIRED(device_ptr)) if(IS_TIMER_EXPIRED(device_ptr))
{ {
// if we want to force goto the emulation loop, skip this // if we want to force goto the emulation loop, skip this
if(g_console.mode_switch != MODE_EMULATION) if(g_extern.console.mode != MODE_EMULATION)
{ {
if(g_console.mode_switch == MODE_EXIT) if(g_extern.console.mode == MODE_EXIT)
{ {
} }
// for ingame menu, we need a different precondition because menu_enable // for ingame menu, we need a different precondition because menu_enable
// can be set to false when going back from ingame menu to menu // can be set to false when going back from ingame menu to menu
else if(g_console.ingame_menu_enable == true) else if(g_extern.console.ingame_menu_enable == true)
{ {
//we want to force exit when mode_switch is set to MODE_EXIT //we want to force exit when g_extern.console.mode is set to MODE_EXIT
if(g_console.mode_switch != MODE_EXIT) if(g_extern.console.mode != 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; g_extern.console.mode = (((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_extern.console.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; g_extern.console.mode = g_extern.console.enable ? MODE_MENU : MODE_EMULATION;
} }
} }
} }
// set a timer delay so that we don't instantly switch back to the menu when // set a timer delay so that we don't instantly switch back to the menu when
// press and holding L3 + R3 in the emulation loop (lasts for 30 frame ticks) // press and holding L3 + R3 in the emulation loop (lasts for 30 frame ticks)
if(g_console.mode_switch == MODE_EMULATION && !g_console.frame_advance_enable) if(g_extern.console.mode == MODE_EMULATION && !g_extern.console.frame_advance_enable)
{ {
SET_TIMER_EXPIRATION(device_ptr, 30); SET_TIMER_EXPIRATION(device_ptr, 30);
} }
@ -2371,14 +2371,14 @@ void menu_loop(void)
{ } { }
else else
context->blend(false); context->blend(false);
}while(g_console.menu_enable); }while(g_extern.console.enable);
context->free_textures(); context->free_textures();
if(g_console.ingame_menu_enable) if(g_extern.console.ingame_menu_enable)
menu_stack_pop(); menu_stack_pop();
device_ptr->block_swap = false; device_ptr->block_swap = false;
g_console.ingame_menu_enable = false; g_extern.console.ingame_menu_enable = false;
} }

View File

@ -207,10 +207,6 @@ struct console_settings
bool default_savestate_dir_enable; bool default_savestate_dir_enable;
bool fbo_enabled; bool fbo_enabled;
bool fps_info_msg_enable; bool fps_info_msg_enable;
bool frame_advance_enable;
#ifdef _XBOX
bool menus_hd_enable;
#endif
#ifdef _XBOX1 #ifdef _XBOX1
unsigned flicker_filter; unsigned flicker_filter;
unsigned sound_volume_level; unsigned sound_volume_level;
@ -218,8 +214,6 @@ struct console_settings
bool soft_display_filter_enable; bool soft_display_filter_enable;
bool initialize_rarch_enable; bool initialize_rarch_enable;
bool info_msg_enable; bool info_msg_enable;
bool ingame_menu_enable;
bool menu_enable;
bool overscan_enable; bool overscan_enable;
bool return_to_launcher; bool return_to_launcher;
bool screenshots_enable; bool screenshots_enable;
@ -237,10 +231,8 @@ struct console_settings
unsigned screen_orientation; unsigned screen_orientation;
unsigned current_resolution_index; unsigned current_resolution_index;
unsigned current_resolution_id; unsigned current_resolution_id;
unsigned ingame_menu_item;
unsigned initial_resolution_id; unsigned initial_resolution_id;
unsigned map_dpad_to_stick; unsigned map_dpad_to_stick;
unsigned mode_switch;
unsigned sound_mode; unsigned sound_mode;
uint32_t *supported_resolutions; uint32_t *supported_resolutions;
unsigned supported_resolutions_count; unsigned supported_resolutions_count;
@ -256,12 +248,10 @@ struct console_settings
#endif #endif
char cgp_path[PATH_MAX]; char cgp_path[PATH_MAX];
char input_cfg_path[PATH_MAX]; char input_cfg_path[PATH_MAX];
char rom_path[PATH_MAX];
char default_rom_startup_dir[PATH_MAX]; char default_rom_startup_dir[PATH_MAX];
char default_savestate_dir[PATH_MAX]; char default_savestate_dir[PATH_MAX];
char default_sram_dir[PATH_MAX]; char default_sram_dir[PATH_MAX];
char launch_app_on_exit[PATH_MAX]; char launch_app_on_exit[PATH_MAX];
float menu_font_size;
#ifdef HAVE_OSKUTIL #ifdef HAVE_OSKUTIL
oskutil_params oskutil_handle; oskutil_params oskutil_handle;
#endif #endif
@ -478,6 +468,24 @@ struct global
char sha256[64 + 1]; char sha256[64 + 1];
/* FIXME: too much hassle ifndeffing this now for HAVE_RMENU */
struct
{
bool menus_hd_enable;
bool frame_advance_enable;
bool ingame_menu_enable;
bool enable;
unsigned ingame_menu_item;
unsigned mode;
float font_size;
} console;
struct
{
char rom_path[PATH_MAX];
} filebrowser_state;
#ifdef HAVE_XML #ifdef HAVE_XML
cheat_manager_t *cheat; cheat_manager_t *cheat;
#endif #endif

View File

@ -284,7 +284,7 @@ static void menu_loop(void)
bool first_held = false; bool first_held = false;
bool initial_held = true; bool initial_held = true;
g_console.menu_enable = true; g_extern.console.enable = true;
gx->menu_render = true; gx->menu_render = true;
do do
@ -363,34 +363,34 @@ static void menu_loop(void)
if(IS_TIMER_EXPIRED(gx)) if(IS_TIMER_EXPIRED(gx))
{ {
// if we want to force goto the emulation loop, skip this // if we want to force goto the emulation loop, skip this
if(g_console.mode_switch != MODE_EMULATION) if(g_extern.console.mode != MODE_EMULATION)
{ {
if(goto_menu_key_pressed) if(goto_menu_key_pressed)
{ {
g_console.menu_enable = (goto_menu_key_pressed && g_console.emulator_initialized) ? false : true; g_extern.console.enable = (goto_menu_key_pressed && g_console.emulator_initialized) ? false : true;
g_console.mode_switch = g_console.menu_enable ? MODE_MENU : MODE_EMULATION; g_extern.console.mode = g_extern.console.enable ? MODE_MENU : MODE_EMULATION;
} }
} }
} }
if(quit_key_pressed) if(quit_key_pressed)
{ {
g_console.menu_enable = false; g_extern.console.enable = false;
g_console.mode_switch = MODE_EXIT; g_extern.console.mode = MODE_EXIT;
} }
// set a timer delay so that we don't instantly switch back to the menu when // set a timer delay so that we don't instantly switch back to the menu when
// press and holding QUIT in the emulation loop (lasts for 30 frame ticks) // press and holding QUIT in the emulation loop (lasts for 30 frame ticks)
if(g_console.mode_switch == MODE_EMULATION) if(g_extern.console.mode == MODE_EMULATION)
{ {
SET_TIMER_EXPIRATION(gx, 30); SET_TIMER_EXPIRATION(gx, 30);
} }
}while(g_console.menu_enable); }while(g_extern.console.enable);
gx->menu_render = false; gx->menu_render = false;
g_console.ingame_menu_enable = false; g_extern.console.ingame_menu_enable = false;
} }
static void menu_init(void) static void menu_init(void)
@ -399,7 +399,7 @@ static void menu_init(void)
menu_framebuf, RGUI_WIDTH * sizeof(uint16_t), menu_framebuf, RGUI_WIDTH * sizeof(uint16_t),
NULL /* _binary_console_font_bmp_start */, _binary_console_font_bin_start, folder_cb, NULL); NULL /* _binary_console_font_bmp_start */, _binary_console_font_bin_start, folder_cb, NULL);
g_console.mode_switch = MODE_MENU; g_extern.console.mode = MODE_MENU;
rgui_iterate(rgui, RGUI_ACTION_REFRESH); rgui_iterate(rgui, RGUI_ACTION_REFRESH);
} }
@ -561,12 +561,10 @@ int main(int argc, char *argv[])
rarch_startup(default_paths.config_file); rarch_startup(default_paths.config_file);
} }
else else
{
g_console.external_launcher_support = EXTERN_LAUNCHER_SALAMANDER; g_console.external_launcher_support = EXTERN_LAUNCHER_SALAMANDER;
}
begin_loop: begin_loop:
if(g_console.mode_switch == MODE_EMULATION) if(g_extern.console.mode == MODE_EMULATION)
{ {
bool repeat = false; bool repeat = false;
@ -578,15 +576,15 @@ begin_loop:
do{ do{
repeat = rarch_main_iterate(); repeat = rarch_main_iterate();
}while(repeat && !g_console.frame_advance_enable); }while(repeat && !g_extern.console.frame_advance_enable);
audio_stop_func(); audio_stop_func();
} }
else if(g_console.mode_switch == MODE_MENU) else if(g_extern.console.mode == MODE_MENU)
{ {
menu_loop(); menu_loop();
if (g_console.mode_switch != MODE_EXIT) if (g_extern.console.mode != MODE_EXIT)
rarch_startup(default_paths.config_file); rarch_startup(default_paths.config_file);
} }
else else

View File

@ -327,12 +327,12 @@ int main(int argc, char *argv[])
switch(g_console.external_launcher_support) switch(g_console.external_launcher_support)
{ {
case EXTERN_LAUNCHER_SALAMANDER: case EXTERN_LAUNCHER_SALAMANDER:
g_console.mode_switch = MODE_MENU; g_extern.console.mode = MODE_MENU;
break; break;
#ifdef HAVE_MULTIMAN #ifdef HAVE_MULTIMAN
case EXTERN_LAUNCHER_MULTIMAN: case EXTERN_LAUNCHER_MULTIMAN:
RARCH_LOG("Started from multiMAN, will auto-start game.\n"); RARCH_LOG("Started from multiMAN, will auto-start game.\n");
strlcpy(g_console.rom_path, argv[1], sizeof(g_console.rom_path)); strlcpy(g_extern.filebrowser_state.rom_path, argv[1], sizeof(g_extern.filebrowser_state.rom_path));
rarch_settings_change(S_START_RARCH); rarch_settings_change(S_START_RARCH);
rarch_startup(default_paths.config_file); rarch_startup(default_paths.config_file);
break; break;
@ -342,7 +342,7 @@ int main(int argc, char *argv[])
} }
begin_loop: begin_loop:
if(g_console.mode_switch == MODE_EMULATION) if(g_extern.console.mode == MODE_EMULATION)
{ {
bool repeat = false; bool repeat = false;
@ -352,13 +352,13 @@ begin_loop:
do{ do{
repeat = rarch_main_iterate(); repeat = rarch_main_iterate();
}while(repeat && !g_console.frame_advance_enable); }while(repeat && !g_extern.console.frame_advance_enable);
} }
else if(g_console.mode_switch == MODE_MENU) else if(g_extern.console.mode == MODE_MENU)
{ {
menu_loop(); menu_loop();
if (g_console.mode_switch != MODE_EXIT) if (g_extern.console.mode != MODE_EXIT)
rarch_startup(default_paths.config_file); rarch_startup(default_paths.config_file);
} }
else else

View File

@ -443,11 +443,11 @@ static bool ps3_key_pressed(void *data, int key)
case RARCH_STATE_SLOT_MINUS: case RARCH_STATE_SLOT_MINUS:
return ((state[0] & PS3_GAMEPAD_RSTICK_LEFT_MASK) && (state[0] & PS3_GAMEPAD_R2)); return ((state[0] & PS3_GAMEPAD_RSTICK_LEFT_MASK) && (state[0] & PS3_GAMEPAD_R2));
case RARCH_FRAMEADVANCE: case RARCH_FRAMEADVANCE:
if(g_console.frame_advance_enable) if(g_extern.console.frame_advance_enable)
{ {
g_console.menu_enable = true; g_extern.console.enable = true;
g_console.ingame_menu_enable = true; g_extern.console.ingame_menu_enable = true;
g_console.mode_switch = MODE_MENU; g_extern.console.mode = MODE_MENU;
} }
return false; return false;
case RARCH_REWIND: case RARCH_REWIND:
@ -459,17 +459,17 @@ static bool ps3_key_pressed(void *data, int key)
uint32_t r3_pressed = state[0] & PS3_GAMEPAD_R3; uint32_t r3_pressed = state[0] & PS3_GAMEPAD_R3;
uint32_t l3_pressed = state[0] & PS3_GAMEPAD_L3; uint32_t l3_pressed = state[0] & PS3_GAMEPAD_L3;
bool retval = false; bool retval = false;
g_console.menu_enable = (r3_pressed && l3_pressed && IS_TIMER_EXPIRED(gl)); g_extern.console.enable = (r3_pressed && l3_pressed && IS_TIMER_EXPIRED(gl));
g_console.ingame_menu_enable = r3_pressed && !l3_pressed; g_extern.console.ingame_menu_enable = r3_pressed && !l3_pressed;
if(g_console.menu_enable || (g_console.ingame_menu_enable && !g_console.menu_enable)) if(g_extern.console.enable || (g_extern.console.ingame_menu_enable && !g_extern.console.enable))
{ {
g_console.mode_switch = MODE_MENU; g_extern.console.mode = MODE_MENU;
SET_TIMER_EXPIRATION(gl, 30); SET_TIMER_EXPIRATION(gl, 30);
retval = g_console.menu_enable; retval = g_extern.console.enable;
} }
retval = g_console.ingame_menu_enable ? g_console.ingame_menu_enable : g_console.menu_enable; retval = g_extern.console.ingame_menu_enable ? g_extern.console.ingame_menu_enable : g_extern.console.enable;
return retval; return retval;
} }
#endif #endif

View File

@ -2617,8 +2617,8 @@ bool rarch_main_iterate(void)
// SHUTDOWN on consoles should exit RetroArch completely. // SHUTDOWN on consoles should exit RetroArch completely.
if (g_extern.system.shutdown) if (g_extern.system.shutdown)
{ {
#ifdef RARCH_CONSOLE #ifdef HAVE_RMENU
g_console.mode_switch = MODE_EXIT; g_extern.console.mode = MODE_EXIT;
#endif #endif
return false; return false;
} }

View File

@ -182,7 +182,7 @@ int main(int argc, char *argv[])
menu_init(); menu_init();
begin_loop: begin_loop:
if(g_console.mode_switch == MODE_EMULATION) if(g_extern.console.mode == MODE_EMULATION)
{ {
bool repeat = false; bool repeat = false;
@ -192,13 +192,13 @@ begin_loop:
do{ do{
repeat = rarch_main_iterate(); repeat = rarch_main_iterate();
}while(repeat && !g_console.frame_advance_enable); }while(repeat && !g_extern.console.frame_advance_enable);
} }
else if(g_console.mode_switch == MODE_MENU) else if(g_extern.console.mode == MODE_MENU)
{ {
menu_loop(); menu_loop();
if (g_console.mode_switch != MODE_EXIT) if (g_extern.console.mode != MODE_EXIT)
rarch_startup(default_paths.config_file); rarch_startup(default_paths.config_file);
} }
else else