diff --git a/console/griffin/griffin.c b/console/griffin/griffin.c index 109bdabd04..2fa09cc89a 100644 --- a/console/griffin/griffin.c +++ b/console/griffin/griffin.c @@ -438,6 +438,7 @@ MENU #endif #ifdef HAVE_RMENU +#include "../../frontend/menu/rmenu_settings.c" #if defined(_XBOX360) #include "../../frontend/menu/rmenu_xui.cpp" diff --git a/frontend/frontend_console.c b/frontend/frontend_console.c index 58c12f2eef..a2e2644daf 100644 --- a/frontend/frontend_console.c +++ b/frontend/frontend_console.c @@ -21,6 +21,7 @@ #include "frontend_console.h" #include "menu/rmenu.h" +#include "menu/rmenu_settings.h" #if defined(__CELLOS_LV2__) #include "platform/platform_ps3.c" @@ -311,7 +312,7 @@ begin_loop: { RARCH_ERR("rarch_main_init failed.\n"); g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU); - rarch_settings_msg(S_MSG_ROM_LOADING_ERROR, 180); + rmenu_settings_msg(S_MSG_ROM_LOADING_ERROR, S_DELAY_180); } g_extern.lifecycle_mode_state &= ~(1ULL << MODE_INIT); } diff --git a/frontend/menu/rgui.c b/frontend/menu/rgui.c index 2731ff3154..d4527dcc49 100644 --- a/frontend/menu/rgui.c +++ b/frontend/menu/rgui.c @@ -21,8 +21,8 @@ #include "rgui.h" #include "utils/file_list.h" +#include "rmenu_settings.h" #include "../../general.h" -#include "../../settings.h" #include "../../gfx/gfx_common.h" #ifdef HAVE_OPENGL @@ -484,7 +484,7 @@ static void render_text(rgui_handle_t *rgui) case RGUI_SETTINGS_VIDEO_ROTATION: { char rotate_msg[64]; - menu_settings_create_menu_item_label(rotate_msg, S_LBL_ROTATION, sizeof(rotate_msg)); + rmenu_settings_create_menu_item_label(rotate_msg, S_LBL_ROTATION, sizeof(rotate_msg)); snprintf(type_str, sizeof(type_str), rotate_msg); } break; @@ -613,10 +613,10 @@ static int rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t case RGUI_SETTINGS_REWIND_ENABLE: if (action == RGUI_ACTION_OK || action == RGUI_ACTION_LEFT || action == RGUI_ACTION_RIGHT) { - rarch_settings_set(S_REWIND); + rmenu_settings_set(S_REWIND); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESTART_RARCH, 180); + rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); } else if (action == RGUI_ACTION_START) g_settings.rewind_enable = false; @@ -644,11 +644,11 @@ static int rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t return -1; } else if (action == RGUI_ACTION_START) - rarch_settings_set_default(S_DEF_SAVE_STATE); + rmenu_settings_set_default(S_DEF_SAVE_STATE); else if (action == RGUI_ACTION_LEFT) - rarch_settings_set(S_SAVESTATE_DECREMENT); + rmenu_settings_set(S_SAVESTATE_DECREMENT); else if (action == RGUI_ACTION_RIGHT) - rarch_settings_set(S_SAVESTATE_INCREMENT); + rmenu_settings_set(S_SAVESTATE_INCREMENT); break; case RGUI_SETTINGS_SCREENSHOT: if (action == RGUI_ACTION_OK) @@ -670,7 +670,7 @@ static int rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t data + (height - 1) * (pitch >> 1), width, height, -pitch, false); - msg_queue_push(g_extern.msg_queue, r ? "Screenshot saved" : "Screenshot failed to save", 1, 90); + msg_queue_push(g_extern.msg_queue, r ? "Screenshot saved" : "Screenshot failed to save", 1, S_DELAY_90); } break; case RGUI_SETTINGS_RESTART_GAME: @@ -683,9 +683,9 @@ static int rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t break; case RGUI_SETTINGS_VIDEO_FILTER: if (action == RGUI_ACTION_START) - rarch_settings_set_default(S_DEF_HW_TEXTURE_FILTER); + rmenu_settings_set_default(S_DEF_HW_TEXTURE_FILTER); else - rarch_settings_set(S_HW_TEXTURE_FILTER); + rmenu_settings_set(S_HW_TEXTURE_FILTER); break; #ifdef HW_RVL case RGUI_SETTINGS_VIDEO_SOFT_FILTER: @@ -749,60 +749,60 @@ static int rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t break; case RGUI_SETTINGS_VIDEO_ASPECT_RATIO: if (action == RGUI_ACTION_START) - rarch_settings_set_default(S_DEF_ASPECT_RATIO); + rmenu_settings_set_default(S_DEF_ASPECT_RATIO); else if (action == RGUI_ACTION_LEFT) - rarch_settings_set(S_ASPECT_RATIO_DECREMENT); + rmenu_settings_set(S_ASPECT_RATIO_DECREMENT); else if (action == RGUI_ACTION_RIGHT) - rarch_settings_set(S_ASPECT_RATIO_INCREMENT); + rmenu_settings_set(S_ASPECT_RATIO_INCREMENT); video_set_aspect_ratio_func(g_settings.video.aspect_ratio_idx); break; case RGUI_SETTINGS_VIDEO_ROTATION: if (action == RGUI_ACTION_START) { - rarch_settings_set_default(S_DEF_AUDIO_CONTROL_RATE); + rmenu_settings_set_default(S_DEF_AUDIO_CONTROL_RATE); video_set_rotation_func(g_extern.console.screen.orientation); } else if (action == RGUI_ACTION_LEFT) { - rarch_settings_set(S_ROTATION_DECREMENT); + rmenu_settings_set(S_ROTATION_DECREMENT); video_set_rotation_func(g_extern.console.screen.orientation); } else if (action == RGUI_ACTION_RIGHT) { - rarch_settings_set(S_ROTATION_INCREMENT); + rmenu_settings_set(S_ROTATION_INCREMENT); video_set_rotation_func(g_extern.console.screen.orientation); } break; case RGUI_SETTINGS_VIDEO_OVERSCAN: if (action == RGUI_ACTION_START) { - rarch_settings_set_default(S_DEF_OVERSCAN); + rmenu_settings_set_default(S_DEF_OVERSCAN); driver.video->apply_state_changes(); } else if (action == RGUI_ACTION_LEFT) { - rarch_settings_set(S_OVERSCAN_DECREMENT); + rmenu_settings_set(S_OVERSCAN_DECREMENT); driver.video->apply_state_changes(); } else if (action == RGUI_ACTION_RIGHT) { - rarch_settings_set(S_OVERSCAN_INCREMENT); + rmenu_settings_set(S_OVERSCAN_INCREMENT); driver.video->apply_state_changes(); } break; case RGUI_SETTINGS_AUDIO_MUTE: if (action == RGUI_ACTION_START) - rarch_settings_set_default(S_DEF_AUDIO_MUTE); + rmenu_settings_set_default(S_DEF_AUDIO_MUTE); else - rarch_settings_set(S_AUDIO_MUTE); + rmenu_settings_set(S_AUDIO_MUTE); break; case RGUI_SETTINGS_AUDIO_CONTROL_RATE: if (action == RGUI_ACTION_START) - rarch_settings_set_default(S_DEF_AUDIO_CONTROL_RATE); + rmenu_settings_set_default(S_DEF_AUDIO_CONTROL_RATE); else if (action == RGUI_ACTION_LEFT) - rarch_settings_set(S_AUDIO_CONTROL_RATE_DECREMENT); + rmenu_settings_set(S_AUDIO_CONTROL_RATE_DECREMENT); else if (action == RGUI_ACTION_RIGHT) - rarch_settings_set(S_AUDIO_CONTROL_RATE_INCREMENT); + rmenu_settings_set(S_AUDIO_CONTROL_RATE_INCREMENT); break; case RGUI_SETTINGS_RESAMPLER_TYPE: { @@ -1371,7 +1371,7 @@ int rgui_iterate(rgui_handle_t *rgui, rgui_action_t action) strlcpy(g_extern.fullpath, rgui->path_buf, sizeof(g_extern.fullpath)); g_extern.lifecycle_mode_state |= (1ULL << MODE_LOAD_GAME); - rarch_settings_msg(S_MSG_LOADING_ROM, 1); + rmenu_settings_msg(S_MSG_LOADING_ROM, S_DELAY_1); rgui->need_refresh = true; // in case of zip extract rgui->msg_force = true; } @@ -1652,7 +1652,7 @@ int rmenu_input_process(void *data, void *state) if (g_extern.lifecycle_mode_state & (1ULL << MODE_LOAD_GAME)) { if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_LOADING_ROM, 100); + rmenu_settings_msg(S_MSG_LOADING_ROM, 100); if (g_extern.fullpath) g_extern.lifecycle_mode_state |= (1ULL << MODE_INIT); diff --git a/frontend/menu/rmenu.c b/frontend/menu/rmenu.c index b44d3c144a..3b5c0c5325 100644 --- a/frontend/menu/rmenu.c +++ b/frontend/menu/rmenu.c @@ -29,6 +29,7 @@ #include "../../console/rarch_console.h" #include "../../console/rarch_console_input.h" +#include "rmenu_settings.h" #include "../../gfx/image.h" @@ -38,7 +39,6 @@ #include "../../file.h" #include "../../driver.h" #include "../../general.h" -#include "../../settings.h" #define EXT_IMAGES "png|PNG|jpg|JPG|JPEG|jpeg" #define EXT_SHADERS "cg|CG" @@ -625,7 +625,7 @@ static void browser_update(void *data, uint64_t input, const char *extensions) ret = filebrowser_iterate(b, action); if(!ret) - rarch_settings_msg(S_MSG_DIR_LOADING_ERROR, 180); + rmenu_settings_msg(S_MSG_DIR_LOADING_ERROR, S_DELAY_180); } void browser_render(void *data) @@ -724,7 +724,7 @@ int select_file(void *data, void *state) { driver.video->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, path, RARCH_SHADER_INDEX_PASS0); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, 180); + rmenu_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } else RARCH_ERR("Shaders are unsupported on this platform.\n"); @@ -740,7 +740,7 @@ int select_file(void *data, void *state) { driver.video->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, path, RARCH_SHADER_INDEX_PASS1); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, 180); + rmenu_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } else RARCH_ERR("Shaders are unsupported on this platform.\n"); @@ -782,7 +782,7 @@ int select_file(void *data, void *state) else { if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESTART_RARCH, 180); + rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); } break; } @@ -791,7 +791,7 @@ int select_file(void *data, void *state) } if(!ret) - rarch_settings_msg(S_MSG_DIR_LOADING_ERROR, 180); + rmenu_settings_msg(S_MSG_DIR_LOADING_ERROR, S_DELAY_180); } else if (input & (1ULL << RMENU_DEVICE_NAV_X)) menu_stack_pop(); @@ -889,7 +889,7 @@ int select_directory(void *data, void *state) } if(!ret) - rarch_settings_msg(S_MSG_DIR_LOADING_ERROR, 180); + rmenu_settings_msg(S_MSG_DIR_LOADING_ERROR, S_DELAY_180); display_menubar(current_menu); @@ -1028,9 +1028,9 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) #ifdef __CELLOS_LV2__ case SETTING_CHANGE_RESOLUTION: if(input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) - rarch_settings_set(S_RESOLUTION_NEXT); + rmenu_settings_set(S_RESOLUTION_NEXT); if(input & (1ULL << RMENU_DEVICE_NAV_LEFT)) - rarch_settings_set(S_RESOLUTION_PREVIOUS); + rmenu_settings_set(S_RESOLUTION_PREVIOUS); if(input & (1ULL << RMENU_DEVICE_NAV_B)) { if (g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx] == CELL_VIDEO_OUT_RESOLUTION_576) @@ -1106,7 +1106,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) { driver.video->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, NULL, RARCH_SHADER_INDEX_PASS0); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, 180); + rmenu_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } else RARCH_ERR("Shaders are unsupported on this platform.\n"); @@ -1126,7 +1126,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) { driver.video->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, NULL, RARCH_SHADER_INDEX_PASS1); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, 180); + rmenu_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } else RARCH_ERR("Shaders are unsupported on this platform.\n"); @@ -1159,7 +1159,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_LOW_RAM_MODE_ENABLE_PENDING); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESTART_RARCH, 180); + rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); } } if(input & (1ULL << RMENU_DEVICE_NAV_START)) @@ -1172,7 +1172,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_LOW_RAM_MODE_ENABLE_PENDING); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESTART_RARCH, 180); + rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); } } } @@ -1194,29 +1194,29 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) case SETTING_KEEP_ASPECT_RATIO: if(input & (1ULL << RMENU_DEVICE_NAV_LEFT)) { - rarch_settings_set(S_ASPECT_RATIO_DECREMENT); + rmenu_settings_set(S_ASPECT_RATIO_DECREMENT); driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx); } if(input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) { - rarch_settings_set(S_ASPECT_RATIO_INCREMENT); + rmenu_settings_set(S_ASPECT_RATIO_INCREMENT); driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx); } if(input & (1ULL << RMENU_DEVICE_NAV_START)) { - rarch_settings_set_default(S_DEF_ASPECT_RATIO); + rmenu_settings_set_default(S_DEF_ASPECT_RATIO); driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx); } break; case SETTING_HW_TEXTURE_FILTER: if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) { - rarch_settings_set(S_HW_TEXTURE_FILTER); + rmenu_settings_set(S_HW_TEXTURE_FILTER); device_ptr->ctx_driver->set_filtering(1, g_settings.video.smooth); } if(input & (1ULL << RMENU_DEVICE_NAV_START)) { - rarch_settings_set(S_DEF_HW_TEXTURE_FILTER); + rmenu_settings_set(S_DEF_HW_TEXTURE_FILTER); device_ptr->ctx_driver->set_filtering(1, g_settings.video.smooth); } break; @@ -1224,19 +1224,19 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) case SETTING_HW_TEXTURE_FILTER_2: if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) { - rarch_settings_set(S_HW_TEXTURE_FILTER_2); + rmenu_settings_set(S_HW_TEXTURE_FILTER_2); device_ptr->ctx_driver->set_filtering(2, g_settings.video.second_pass_smooth); } if(input & (1ULL << RMENU_DEVICE_NAV_START)) { - rarch_settings_set(S_DEF_HW_TEXTURE_FILTER_2); + rmenu_settings_set(S_DEF_HW_TEXTURE_FILTER_2); device_ptr->ctx_driver->set_filtering(2, g_settings.video.second_pass_smooth); } break; case SETTING_SCALE_ENABLED: if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) { - rarch_settings_set(S_SCALE_ENABLED); + rmenu_settings_set(S_SCALE_ENABLED); if(g_settings.video.render_to_texture) device_ptr->ctx_driver->set_fbo(FBO_INIT); @@ -1245,7 +1245,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) } if(input & (1ULL << RMENU_DEVICE_NAV_START)) { - rarch_settings_set_default(S_DEF_SCALE_ENABLED); + rmenu_settings_set_default(S_DEF_SCALE_ENABLED); device_ptr->ctx_driver->set_fbo(FBO_REINIT); } break; @@ -1258,7 +1258,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) if(should_decrement) { - rarch_settings_set(S_SCALE_FACTOR_DECREMENT); + rmenu_settings_set(S_SCALE_FACTOR_DECREMENT); device_ptr->ctx_driver->set_fbo(FBO_REINIT); } } @@ -1270,14 +1270,14 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) bool should_increment = g_settings.video.fbo.scale_x < MAX_SCALING_FACTOR; if(should_increment) { - rarch_settings_set(S_SCALE_FACTOR_INCREMENT); + rmenu_settings_set(S_SCALE_FACTOR_INCREMENT); device_ptr->ctx_driver->set_fbo(FBO_REINIT); } } } if(input & (1ULL << RMENU_DEVICE_NAV_START)) { - rarch_settings_set_default(S_DEF_SCALE_FACTOR); + rmenu_settings_set_default(S_DEF_SCALE_FACTOR); device_ptr->ctx_driver->set_fbo(FBO_REINIT); } break; @@ -1312,34 +1312,34 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) case SETTING_HW_OVERSCAN_AMOUNT: if(input & (1ULL << RMENU_DEVICE_NAV_LEFT)) { - rarch_settings_set(S_OVERSCAN_DECREMENT); + rmenu_settings_set(S_OVERSCAN_DECREMENT); gfx_ctx_set_overscan(); } if((input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) { - rarch_settings_set(S_OVERSCAN_INCREMENT); + rmenu_settings_set(S_OVERSCAN_INCREMENT); gfx_ctx_set_overscan(); } if(input & (1ULL << RMENU_DEVICE_NAV_START)) { - rarch_settings_set_default(S_DEF_OVERSCAN); + rmenu_settings_set_default(S_DEF_OVERSCAN); gfx_ctx_set_overscan(); } break; case SETTING_REFRESH_RATE: if(input & (1ULL << RMENU_DEVICE_NAV_LEFT)) { - rarch_settings_set(S_REFRESH_RATE_DECREMENT); + rmenu_settings_set(S_REFRESH_RATE_DECREMENT); driver_set_monitor_refresh_rate(g_settings.video.refresh_rate); } if((input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) { - rarch_settings_set(S_REFRESH_RATE_INCREMENT); + rmenu_settings_set(S_REFRESH_RATE_INCREMENT); driver_set_monitor_refresh_rate(g_settings.video.refresh_rate); } if(input & (1ULL << RMENU_DEVICE_NAV_START)) { - rarch_settings_set_default(S_DEF_REFRESH_RATE); + rmenu_settings_set_default(S_DEF_REFRESH_RATE); driver_set_monitor_refresh_rate(g_settings.video.refresh_rate); } break; @@ -1348,7 +1348,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) { if (!(g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_PAL_VSYNC_BLOCK))) { - rarch_settings_set(S_THROTTLE); + rmenu_settings_set(S_THROTTLE); device_ptr->ctx_driver->swap_interval((g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_THROTTLE_ENABLE)) ? true : false); } } @@ -1356,7 +1356,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) { if (!(g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_PAL_VSYNC_BLOCK))) { - rarch_settings_set_default(S_DEF_THROTTLE); + rmenu_settings_set_default(S_DEF_THROTTLE); device_ptr->ctx_driver->swap_interval((g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_THROTTLE_ENABLE)) ? true : false); } } @@ -1364,12 +1364,12 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) case SETTING_TRIPLE_BUFFERING: if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) { - rarch_settings_set(S_TRIPLE_BUFFERING); + rmenu_settings_set(S_TRIPLE_BUFFERING); driver.video->restart(); } if(input & (1ULL << RMENU_DEVICE_NAV_START)) { - rarch_settings_set_default(S_DEF_TRIPLE_BUFFERING); + rmenu_settings_set_default(S_DEF_TRIPLE_BUFFERING); if(!(g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE))) driver.video->restart(); @@ -1461,31 +1461,31 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) break; case SETTING_EMU_CURRENT_SAVE_STATE_SLOT: if(input & (1ULL << RMENU_DEVICE_NAV_LEFT)) - rarch_settings_set(S_SAVESTATE_DECREMENT); + rmenu_settings_set(S_SAVESTATE_DECREMENT); if((input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) - rarch_settings_set(S_SAVESTATE_INCREMENT); + rmenu_settings_set(S_SAVESTATE_INCREMENT); if(input & (1ULL << RMENU_DEVICE_NAV_START)) - rarch_settings_set_default(S_DEF_SAVE_STATE); + rmenu_settings_set_default(S_DEF_SAVE_STATE); break; case SETTING_EMU_SHOW_DEBUG_INFO_MSG: if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) - rarch_settings_set(S_INFO_DEBUG_MSG_TOGGLE); + rmenu_settings_set(S_INFO_DEBUG_MSG_TOGGLE); if(input & (1ULL << RMENU_DEVICE_NAV_START)) - rarch_settings_set_default(S_DEF_INFO_DEBUG_MSG); + rmenu_settings_set_default(S_DEF_INFO_DEBUG_MSG); break; case SETTING_EMU_SHOW_INFO_MSG: if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) - rarch_settings_set(S_INFO_MSG_TOGGLE); + rmenu_settings_set(S_INFO_MSG_TOGGLE); if(input & (1ULL << RMENU_DEVICE_NAV_START)) - rarch_settings_set_default(S_DEF_INFO_MSG); + rmenu_settings_set_default(S_DEF_INFO_MSG); break; case SETTING_EMU_REWIND_ENABLED: if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) { - rarch_settings_set(S_REWIND); + rmenu_settings_set(S_REWIND); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESTART_RARCH, 180); + rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); } if(input & (1ULL << RMENU_DEVICE_NAV_START)) g_settings.rewind_enable = false; @@ -1562,10 +1562,10 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) break; case SETTING_EMU_AUDIO_MUTE: if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) - rarch_settings_set(S_AUDIO_MUTE); + rmenu_settings_set(S_AUDIO_MUTE); if(input & (1ULL << RMENU_DEVICE_NAV_START)) - rarch_settings_set_default(S_DEF_AUDIO_MUTE); + rmenu_settings_set_default(S_DEF_AUDIO_MUTE); break; #ifdef _XBOX1 case SETTING_EMU_AUDIO_SOUND_VOLUME_LEVEL: @@ -1573,14 +1573,14 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input) { g_extern.console.sound.volume_level = !g_extern.console.sound.volume_level; if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESTART_RARCH, 180); + rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); } if(input & (1ULL << RMENU_DEVICE_NAV_START)) { g_extern.console.sound.volume_level = 0; if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESTART_RARCH, 180); + rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); } break; #endif @@ -1961,7 +1961,7 @@ int select_rom(void *data, void *state) bool ret = filebrowser_iterate(filebrowser, FILEBROWSER_ACTION_OK); if(!ret) - rarch_settings_msg(S_MSG_DIR_LOADING_ERROR, 180); + rmenu_settings_msg(S_MSG_DIR_LOADING_ERROR, S_DELAY_180); } else { @@ -2297,19 +2297,19 @@ int ingame_menu(void *data, void *state) case MENU_ITEM_ORIENTATION: if(input & (1ULL << RMENU_DEVICE_NAV_LEFT)) { - rarch_settings_set(S_ROTATION_DECREMENT); + rmenu_settings_set(S_ROTATION_DECREMENT); driver.video->set_rotation(NULL, g_extern.console.screen.orientation); } if((input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B))) { - rarch_settings_set(S_ROTATION_INCREMENT); + rmenu_settings_set(S_ROTATION_INCREMENT); driver.video->set_rotation(NULL, g_extern.console.screen.orientation); } if(input & (1ULL << RMENU_DEVICE_NAV_START)) { - rarch_settings_set_default(S_DEF_ROTATION); + rmenu_settings_set_default(S_DEF_ROTATION); driver.video->set_rotation(NULL, g_extern.console.screen.orientation); } snprintf(strw_buffer, sizeof(strw_buffer), "Press [%s] to reset back to default values.", rarch_input_find_platform_key_label(1ULL << RETRO_DEVICE_ID_JOYPAD_START)); @@ -2329,7 +2329,7 @@ int ingame_menu(void *data, void *state) { g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE); g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT); - rarch_settings_set(S_FRAME_ADVANCE); + rmenu_settings_set(S_FRAME_ADVANCE); menu_idx = MENU_ITEM_FRAME_ADVANCE; return -1; } @@ -2432,23 +2432,23 @@ int ingame_menu(void *data, void *state) device_ptr->font_ctx->render_msg_place(device_ptr,default_pos.x_position, default_pos.comment_y_position, default_pos.font_size, WHITE, strw_buffer); - menu_settings_create_menu_item_label(strw_buffer, S_LBL_LOAD_STATE_SLOT, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label(strw_buffer, S_LBL_LOAD_STATE_SLOT, sizeof(strw_buffer)); device_ptr->font_ctx->render_msg_place(device_ptr, default_pos.x_position, default_pos.y_position, default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_LOAD_STATE), strw_buffer); - menu_settings_create_menu_item_label(strw_buffer, S_LBL_SAVE_STATE_SLOT, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label(strw_buffer, S_LBL_SAVE_STATE_SLOT, sizeof(strw_buffer)); device_ptr->font_ctx->render_msg_place(device_ptr, default_pos.x_position, default_pos.y_position+(default_pos.y_position_increment*MENU_ITEM_SAVE_STATE), default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_SAVE_STATE), strw_buffer); - menu_settings_create_menu_item_label(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); device_ptr->font_ctx->render_msg_place(device_ptr, default_pos.x_position, (default_pos.y_position+(default_pos.y_position_increment*MENU_ITEM_KEEP_ASPECT_RATIO)), default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_KEEP_ASPECT_RATIO), strw_buffer); snprintf(strw_buffer, sizeof(strw_buffer), "Overscan: %f", g_extern.console.screen.overscan_amount); device_ptr->font_ctx->render_msg_place(device_ptr, default_pos.x_position, (default_pos.y_position+(default_pos.y_position_increment*MENU_ITEM_OVERSCAN_AMOUNT)), default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_OVERSCAN_AMOUNT), strw_buffer); - menu_settings_create_menu_item_label(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); device_ptr->font_ctx->render_msg_place(device_ptr, default_pos.x_position, (default_pos.y_position+(default_pos.y_position_increment*MENU_ITEM_ORIENTATION)), default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_ORIENTATION), strw_buffer); #ifdef HAVE_FBO - menu_settings_create_menu_item_label(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); device_ptr->font_ctx->render_msg_place(device_ptr, default_pos.x_position, (default_pos.y_position+(default_pos.y_position_increment*MENU_ITEM_SCALE_FACTOR)), default_pos.font_size, MENU_ITEM_SELECTED(MENU_ITEM_SCALE_FACTOR), strw_buffer); #endif @@ -2552,7 +2552,7 @@ int rmenu_input_process(void *data, void *state) if (g_extern.lifecycle_mode_state & (1ULL << MODE_LOAD_GAME)) { if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_LOADING_ROM, 100); + rmenu_settings_msg(S_MSG_LOADING_ROM, 100); g_extern.lifecycle_mode_state |= (1ULL << MODE_INIT); g_extern.lifecycle_mode_state &= ~(1ULL << MODE_LOAD_GAME); diff --git a/frontend/menu/rmenu_settings.c b/frontend/menu/rmenu_settings.c new file mode 100644 index 0000000000..d6698067bd --- /dev/null +++ b/frontend/menu/rmenu_settings.c @@ -0,0 +1,312 @@ +/* RetroArch - A frontend for libretro. + * Copyright (C) 2010-2013 - Hans-Kristian Arntzen + * Copyright (C) 2011-2013 - Daniel De Matteis + * + * RetroArch is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with RetroArch. + * If not, see . + */ + +#include +#include +#include + +#include "../../general.h" +#include "rmenu_settings.h" + +void rmenu_settings_set(unsigned setting) +{ + switch(setting) + { + case S_ASPECT_RATIO_DECREMENT: + if(g_settings.video.aspect_ratio_idx > 0) + g_settings.video.aspect_ratio_idx--; + break; + case S_ASPECT_RATIO_INCREMENT: + if(g_settings.video.aspect_ratio_idx < LAST_ASPECT_RATIO) + g_settings.video.aspect_ratio_idx++; + break; + case S_AUDIO_MUTE: + g_extern.audio_data.mute = !g_extern.audio_data.mute; + break; + case S_AUDIO_CONTROL_RATE_DECREMENT: + if (g_settings.audio.rate_control_delta > 0.0) + g_settings.audio.rate_control_delta -= 0.001; + if (g_settings.audio.rate_control_delta == 0.0) + g_settings.audio.rate_control = false; + else + g_settings.audio.rate_control = true; + break; + case S_AUDIO_CONTROL_RATE_INCREMENT: + if (g_settings.audio.rate_control_delta < 0.2) + g_settings.audio.rate_control_delta += 0.001; + g_settings.audio.rate_control = true; + break; + case S_FRAME_ADVANCE: + g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE); + g_extern.lifecycle_mode_state |= (1ULL << MODE_GAME); + break; + case S_HW_TEXTURE_FILTER: + g_settings.video.smooth = !g_settings.video.smooth; + break; + case S_HW_TEXTURE_FILTER_2: + g_settings.video.second_pass_smooth = !g_settings.video.second_pass_smooth; + break; + case S_OVERSCAN_DECREMENT: + g_extern.console.screen.overscan_amount -= 0.01f; + g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_OVERSCAN_ENABLE); + if(g_extern.console.screen.overscan_amount == 0.0f) + g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE); + break; + case S_OVERSCAN_INCREMENT: + g_extern.console.screen.overscan_amount += 0.01f; + g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_OVERSCAN_ENABLE); + if(g_extern.console.screen.overscan_amount == 0.0f) + g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE); + break; + case S_RESOLUTION_PREVIOUS: + if (g_extern.console.screen.resolutions.current.idx) + { + g_extern.console.screen.resolutions.current.idx--; + g_extern.console.screen.resolutions.current.id = g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx]; + } + break; + case S_RESOLUTION_NEXT: + if (g_extern.console.screen.resolutions.current.idx + 1 < g_extern.console.screen.resolutions.count) + { + g_extern.console.screen.resolutions.current.idx++; + g_extern.console.screen.resolutions.current.id = g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx]; + } + break; + case S_ROTATION_DECREMENT: + if(g_extern.console.screen.orientation > 0) + g_extern.console.screen.orientation--; + break; + case S_ROTATION_INCREMENT: + if(g_extern.console.screen.orientation < LAST_ORIENTATION) + g_extern.console.screen.orientation++; + break; + case S_REWIND: + g_settings.rewind_enable = !g_settings.rewind_enable; + break; + case S_SAVESTATE_DECREMENT: + if(g_extern.state_slot != 0) + g_extern.state_slot--; + break; + case S_SAVESTATE_INCREMENT: + g_extern.state_slot++; + break; + case S_SCALE_ENABLED: + g_settings.video.render_to_texture = !g_settings.video.render_to_texture; + break; + case S_SCALE_FACTOR_DECREMENT: + g_settings.video.fbo.scale_x -= 1.0f; + g_settings.video.fbo.scale_y -= 1.0f; + break; + case S_SCALE_FACTOR_INCREMENT: + g_settings.video.fbo.scale_x += 1.0f; + g_settings.video.fbo.scale_y += 1.0f; + break; + case S_THROTTLE: + if(!g_extern.system.force_nonblock) + { + if (g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_THROTTLE_ENABLE)) + g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_THROTTLE_ENABLE); + else + g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_THROTTLE_ENABLE); + } + break; + case S_TRIPLE_BUFFERING: + if (g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE)) + g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE); + else + g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE); + break; + case S_REFRESH_RATE_DECREMENT: + g_settings.video.refresh_rate -= 0.01f; + break; + case S_REFRESH_RATE_INCREMENT: + g_settings.video.refresh_rate += 0.01f; + break; + case S_INFO_DEBUG_MSG_TOGGLE: + if (g_extern.lifecycle_mode_state & (1ULL << MODE_FPS_DRAW)) + g_extern.lifecycle_mode_state &= ~(1ULL << MODE_FPS_DRAW); + else + g_extern.lifecycle_mode_state |= (1ULL << MODE_FPS_DRAW); + break; + case S_INFO_MSG_TOGGLE: + if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) + g_extern.lifecycle_mode_state &= ~(1ULL << MODE_INFO_DRAW); + else + g_extern.lifecycle_mode_state |= (1ULL << MODE_INFO_DRAW); + break; + default: + RARCH_WARN("rmenu_settings_set - unhandled action.\n"); + } +} + +void rmenu_settings_set_default(unsigned setting) +{ + switch(setting) + { + case S_DEF_ASPECT_RATIO: + g_settings.video.aspect_ratio_idx = ASPECT_RATIO_4_3; + break; + case S_DEF_AUDIO_MUTE: + g_extern.audio_data.mute = false; + break; + case S_DEF_AUDIO_CONTROL_RATE: +#ifdef GEKKO + g_settings.audio.rate_control_delta = 0.006; + g_settings.audio.rate_control = true; +#else + g_settings.audio.rate_control_delta = 0.0; + g_settings.audio.rate_control = false; +#endif + break; + case S_DEF_HW_TEXTURE_FILTER: + g_settings.video.smooth = 1; + break; + case S_DEF_HW_TEXTURE_FILTER_2: + g_settings.video.second_pass_smooth = 1; + break; + case S_DEF_OVERSCAN: + g_extern.console.screen.overscan_amount = 0.0f; + g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE); + break; + case S_DEF_ROTATION: + g_extern.console.screen.orientation = ORIENTATION_NORMAL; + break; + case S_DEF_THROTTLE: + if(!g_extern.system.force_nonblock) + g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_THROTTLE_ENABLE); + break; + case S_DEF_TRIPLE_BUFFERING: + g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE); + break; + case S_DEF_SAVE_STATE: + g_extern.state_slot = 0; + break; + case S_DEF_SCALE_ENABLED: + g_settings.video.render_to_texture = true; + g_settings.video.fbo.scale_x = 2.0f; + g_settings.video.fbo.scale_y = 2.0f; + break; + case S_DEF_SCALE_FACTOR: + g_settings.video.fbo.scale_x = 2.0f; + g_settings.video.fbo.scale_y = 2.0f; + break; + case S_DEF_REFRESH_RATE: +#if defined(RARCH_CONSOLE) + g_settings.video.refresh_rate = 59.92; +#else + g_settings.video.refresh_rate = 59.95; +#endif + break; + case S_DEF_INFO_DEBUG_MSG: + g_extern.lifecycle_mode_state &= ~(1ULL << MODE_FPS_DRAW); + break; + case S_DEF_INFO_MSG: + g_extern.lifecycle_mode_state |= (1ULL << MODE_INFO_DRAW); + break; + default: + RARCH_WARN("rmenu_settings_set_default: unhandled action.\n"); + } +} + +void rmenu_settings_msg(unsigned setting, unsigned delay) +{ + char str[PATH_MAX], tmp[PATH_MAX]; + msg_queue_clear(g_extern.msg_queue); + + (void)tmp; + + switch(setting) + { + case S_MSG_CACHE_PARTITION: + snprintf(str, sizeof(str), "INFO - All the contents of the ZIP files you have selected\nare extracted to this partition."); + break; + case S_MSG_CHANGE_CONTROLS: + snprintf(str, sizeof(str), "INFO - Press LEFT/RIGHT to change the controls, and press\n[RetroPad Start] to reset a button to default values."); + break; + case S_MSG_LOADING_ROM: + fill_pathname_base(tmp, g_extern.fullpath, sizeof(tmp)); + snprintf(str, sizeof(str), "INFO - Loading %s...", tmp); + break; + case S_MSG_DIR_LOADING_ERROR: + snprintf(str, sizeof(str), "ERROR - Failed to open selected directory."); + break; + case S_MSG_ROM_LOADING_ERROR: + snprintf(str, sizeof(str), "ERROR - An error occurred during ROM loading."); + break; + case S_MSG_NOT_IMPLEMENTED: + snprintf(str, sizeof(str), "TODO - Not yet implemented."); + break; + case S_MSG_RESIZE_SCREEN: + snprintf(str, sizeof(str), "INFO - Resize the screen by moving around the two analog sticks.\nPress [RetroPad X] to reset to default values, and [RetroPad A] to go back.\nTo select the resized screen mode, set Aspect Ratio to: 'Custom'."); + break; + case S_MSG_RESTART_RARCH: + snprintf(str, sizeof(str), "INFO - You need to restart RetroArch."); + break; + case S_MSG_SELECT_LIBRETRO_CORE: + snprintf(str, sizeof(str), "INFO - Select a Libretro core from the menu."); + break; + case S_MSG_SELECT_SHADER: + snprintf(str, sizeof(str), "INFO - Select a shader from the menu."); + break; + case S_MSG_SHADER_LOADING_SUCCEEDED: + snprintf(str, sizeof(str), "INFO - Shader successfully loaded."); + break; + } + + msg_queue_push(g_extern.msg_queue, str, 1, delay); +} + +void rmenu_settings_create_menu_item_label_w(wchar_t *strwbuf, unsigned setting, size_t size) +{ + char str[PATH_MAX]; + + rmenu_settings_create_menu_item_label(str, setting, sizeof(str)); + convert_char_to_wchar(strwbuf, str, size); +} + +void rmenu_settings_create_menu_item_label(char * str, unsigned setting, size_t size) +{ + switch (setting) + { + case S_LBL_ASPECT_RATIO: + snprintf(str, size, "Aspect Ratio: %s", aspectratio_lut[g_settings.video.aspect_ratio_idx].name); + break; + case S_LBL_SHADER: + snprintf(str, size, "Shader #1: %s", g_settings.video.cg_shader_path); + break; + case S_LBL_SHADER_2: + snprintf(str, size, "Shader #2: %s", g_settings.video.second_pass_shader); + break; + case S_LBL_RARCH_VERSION: + snprintf(str, size, "RetroArch %s", PACKAGE_VERSION); + break; + case S_LBL_SCALE_FACTOR: + snprintf(str, size, "Scale Factor: %f (X) / %f (Y)", g_settings.video.fbo.scale_x, g_settings.video.fbo.scale_y); + break; + case S_LBL_ROTATION: + snprintf(str, size, "Rotation: %s", rotation_lut[g_extern.console.screen.orientation]); + break; + case S_LBL_LOAD_STATE_SLOT: + snprintf(str, size, "Load State #%d", g_extern.state_slot); + break; + case S_LBL_SAVE_STATE_SLOT: + snprintf(str, size, "Save State #%d", g_extern.state_slot); + break; + case S_LBL_REWIND_GRANULARITY: + snprintf(str, size, "Rewind granularity: %d", g_settings.rewind_granularity); + break; + } +} diff --git a/settings.h b/frontend/menu/rmenu_settings.h similarity index 81% rename from settings.h rename to frontend/menu/rmenu_settings.h index 074a682474..cfd418f0df 100644 --- a/settings.h +++ b/frontend/menu/rmenu_settings.h @@ -14,8 +14,18 @@ * If not, see . */ -#ifndef __RARCH_SETTINGS_H -#define __RARCH_SETTINGS_H +#ifndef CONSOLE_SETTINGS_H +#define CONSOLE_SETTINGS_H + +enum +{ + S_DELAY_0 = 0, + S_DELAY_1 = 1, + S_DELAY_45 = 45, + S_DELAY_90 = 90, + S_DELAY_180 = 180, + S_DELAY_270 = 270 +}; enum { @@ -94,10 +104,11 @@ enum S_LBL_REWIND_GRANULARITY, }; -void rarch_settings_set(unsigned setting); -void rarch_settings_set_default(unsigned setting); -void rarch_settings_msg(unsigned setting, unsigned delay); +void rmenu_settings_set(unsigned setting); +void rmenu_settings_set_default(unsigned setting); +void rmenu_settings_msg(unsigned setting, unsigned delay); -void menu_settings_create_menu_item_label(char * str, unsigned setting, size_t size); +void rmenu_settings_create_menu_item_label(char * str, unsigned setting, size_t size); +void rmenu_settings_create_menu_item_label_w(wchar_t *strwbuf, unsigned setting, size_t size); #endif diff --git a/frontend/menu/rmenu_xui.cpp b/frontend/menu/rmenu_xui.cpp index fd6d17e230..b9d705290b 100644 --- a/frontend/menu/rmenu_xui.cpp +++ b/frontend/menu/rmenu_xui.cpp @@ -24,6 +24,7 @@ #include "utils/file_browser.h" #include "../../console/rarch_console.h" +#include "rmenu_settings.h" #include "../../gfx/gfx_common.h" #include "../../gfx/gfx_context.h" @@ -31,7 +32,6 @@ #include "../../message.h" #include "../../general.h" -#include "../../settings.h" enum { MENU_XUI_ITEM_LOAD_STATE = 0, @@ -59,14 +59,6 @@ char str_buffer[PATH_MAX]; static int process_input_ret = 0; static unsigned input_loop = 0; -static void menu_settings_create_menu_item_label_w(wchar_t *strwbuf, unsigned setting, size_t size) -{ - char str[PATH_MAX]; - - menu_settings_create_menu_item_label(str, setting, sizeof(str)); - convert_char_to_wchar(strwbuf, str, size); -} - enum { RMENU_DEVICE_NAV_UP = 0, @@ -179,7 +171,7 @@ static void browser_update(filebrowser_t * b, uint64_t input, const char *extens ret = filebrowser_iterate(b, action); if(!ret) - rarch_settings_msg(S_MSG_DIR_LOADING_ERROR, 180); + rmenu_settings_msg(S_MSG_DIR_LOADING_ERROR, S_DELAY_180); } HRESULT CRetroArchFileBrowser::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) @@ -408,13 +400,13 @@ HRESULT CRetroArchSettings::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER, g_settings.video.smooth ? L"Hardware filtering shader #1: Linear interpolation" : L"Hardware filtering shader #1: Point filtering"); m_settingslist.SetText(SETTING_HW_TEXTURE_FILTER_2, g_settings.video.second_pass_smooth ? L"Hardware filtering shader #2: Linear interpolation" : L"Hardware filtering shader #2: Point filtering"); m_settingslist.SetText(SETTING_SCALE_ENABLED, g_settings.video.render_to_texture ? L"Custom Scaling/Dual Shaders: ON" : L"Custom Scaling/Dual Shaders: OFF"); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SHADER, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SHADER, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_SHADER, strw_buffer); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SHADER_2, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SHADER_2, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_SHADER_2, strw_buffer); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_EMU_REWIND_GRANULARITY, strw_buffer); m_settingslist.SetText(SETTING_ENABLE_SRAM_PATH, (g_extern.lifecycle_mode_state & (1ULL << MODE_LOAD_GAME_SRAM_DIR_ENABLE)) ? L"SRAM Path Enable: ON" : L"SRAM Path Enable: OFF"); m_settingslist.SetText(SETTING_ENABLE_STATE_PATH, (g_extern.lifecycle_mode_state & (1ULL << MODE_LOAD_GAME_STATE_DIR_ENABLE)) ? L"Savestate Path Enable: ON" : L"Savestate Path Enable: OFF"); @@ -436,16 +428,16 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled switch(current_index) { case SETTING_EMU_REWIND_ENABLED: - rarch_settings_set(S_REWIND); + rmenu_settings_set(S_REWIND); m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESTART_RARCH, 180); + rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); break; case SETTING_EMU_REWIND_GRANULARITY: g_settings.rewind_granularity++; - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_EMU_REWIND_GRANULARITY, strw_buffer); break; case SETTING_ENABLE_SRAM_PATH: @@ -510,7 +502,7 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled hCur = app.hShaderBrowser; if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_SELECT_SHADER, 180); + rmenu_settings_msg(S_MSG_SELECT_SHADER, S_DELAY_180); NavigateForward(app.hShaderBrowser); break; @@ -523,7 +515,7 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled hCur = app.hShaderBrowser; if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_SELECT_SHADER, 180); + rmenu_settings_msg(S_MSG_SELECT_SHADER, S_DELAY_180); NavigateForward(app.hShaderBrowser); break; @@ -564,17 +556,17 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro switch(current_index) { case SETTING_EMU_REWIND_ENABLED: - rarch_settings_set(S_REWIND); + rmenu_settings_set(S_REWIND); m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESTART_RARCH, 180); + rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); break; case SETTING_EMU_REWIND_GRANULARITY: if (g_settings.rewind_granularity > 1) g_settings.rewind_granularity--; - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_EMU_REWIND_GRANULARITY, strw_buffer); break; case SETTING_ENABLE_SRAM_PATH: @@ -634,9 +626,9 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro { if((g_settings.video.fbo.scale_x > MIN_SCALING_FACTOR)) { - rarch_settings_set(S_SCALE_FACTOR_DECREMENT); + rmenu_settings_set(S_SCALE_FACTOR_DECREMENT); device_ptr->ctx_driver->set_fbo(FBO_REINIT); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer); } } @@ -703,16 +695,16 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF"); break; case SETTING_EMU_REWIND_ENABLED: - rarch_settings_set(S_REWIND); + rmenu_settings_set(S_REWIND); m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF"); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESTART_RARCH, 180); + rmenu_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180); break; case SETTING_EMU_REWIND_GRANULARITY: g_settings.rewind_granularity++; - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_REWIND_GRANULARITY, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_EMU_REWIND_GRANULARITY, strw_buffer); break; case SETTING_ENABLE_SRAM_PATH: @@ -734,9 +726,9 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro { if((g_settings.video.fbo.scale_x < MAX_SCALING_FACTOR)) { - rarch_settings_set(S_SCALE_FACTOR_INCREMENT); + rmenu_settings_set(S_SCALE_FACTOR_INCREMENT); device_ptr->ctx_driver->set_fbo(FBO_REINIT); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SCALE_FACTOR, sizeof(strw_buffer)); m_settingslist.SetText(SETTING_SCALE_FACTOR, strw_buffer); } } @@ -789,16 +781,16 @@ HRESULT CRetroArchQuickMenu::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) GetChildById(L"XuiQuickMenuList", &m_quickmenulist); GetChildById(L"XuiBackButton", &m_back); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_ORIENTATION, strw_buffer); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_ASPECT_RATIO, strw_buffer); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_LOAD_STATE_SLOT, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_LOAD_STATE_SLOT, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_LOAD_STATE, strw_buffer); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SAVE_STATE_SLOT, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SAVE_STATE_SLOT, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_SAVE_STATE, strw_buffer); return 0; @@ -819,18 +811,18 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr case MENU_XUI_ITEM_LOAD_STATE: case MENU_XUI_ITEM_SAVE_STATE: rarch_state_slot_decrease(); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_LOAD_STATE_SLOT, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_LOAD_STATE_SLOT, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_LOAD_STATE, strw_buffer); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SAVE_STATE_SLOT, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SAVE_STATE_SLOT, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_SAVE_STATE, strw_buffer); break; case MENU_XUI_ITEM_ASPECT_RATIO: - rarch_settings_set(S_ASPECT_RATIO_DECREMENT); + rmenu_settings_set(S_ASPECT_RATIO_DECREMENT); aspectratio_changed = true; break; case MENU_XUI_ITEM_ORIENTATION: - rarch_settings_set(S_ROTATION_DECREMENT); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); + rmenu_settings_set(S_ROTATION_DECREMENT); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_ORIENTATION, strw_buffer); driver.video->set_rotation(driver.video_data, g_extern.console.screen.orientation); break; @@ -844,18 +836,18 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr case MENU_XUI_ITEM_LOAD_STATE: case MENU_XUI_ITEM_SAVE_STATE: rarch_state_slot_increase(); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_LOAD_STATE_SLOT, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_LOAD_STATE_SLOT, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_LOAD_STATE, strw_buffer); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SAVE_STATE_SLOT, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_SAVE_STATE_SLOT, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_SAVE_STATE, strw_buffer); break; case MENU_XUI_ITEM_ASPECT_RATIO: - rarch_settings_set(S_ASPECT_RATIO_INCREMENT); + rmenu_settings_set(S_ASPECT_RATIO_INCREMENT); aspectratio_changed = true; break; case MENU_XUI_ITEM_ORIENTATION: - rarch_settings_set(S_ROTATION_INCREMENT); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); + rmenu_settings_set(S_ROTATION_INCREMENT); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_ORIENTATION, strw_buffer); driver.video->set_rotation(driver.video_data, g_extern.console.screen.orientation); break; @@ -871,7 +863,7 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr if(aspectratio_changed) { driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_ASPECT_RATIO, strw_buffer); } @@ -921,31 +913,31 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled } break; case MENU_XUI_ITEM_ASPECT_RATIO: - rarch_settings_set_default(S_DEF_ASPECT_RATIO); + rmenu_settings_set_default(S_DEF_ASPECT_RATIO); driver.video->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_ASPECT_RATIO, strw_buffer); break; case MENU_XUI_ITEM_ORIENTATION: - rarch_settings_set_default(S_DEF_ROTATION); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); + rmenu_settings_set_default(S_DEF_ROTATION); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_ORIENTATION, strw_buffer); driver.video->set_rotation(driver.video_data, g_extern.console.screen.orientation); break; case MENU_XUI_ITEM_RESIZE_MODE: input_loop = INPUT_LOOP_RESIZE_MODE; g_settings.video.aspect_ratio_idx = ASPECT_RATIO_CUSTOM; - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer)); m_quickmenulist.SetText(MENU_XUI_ITEM_ASPECT_RATIO, strw_buffer); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_RESIZE_SCREEN, 270); + rmenu_settings_msg(S_MSG_RESIZE_SCREEN, S_DELAY_270); break; case MENU_XUI_ITEM_FRAME_ADVANCE: if (g_extern.main_is_init) { g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE); - rarch_settings_set(S_FRAME_ADVANCE); + rmenu_settings_set(S_FRAME_ADVANCE); process_input_ret = -1; } break; @@ -1013,7 +1005,7 @@ HRESULT CRetroArchShaderBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHand { driver.video->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, g_settings.video.cg_shader_path, RARCH_SHADER_INDEX_PASS0); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, 180); + rmenu_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); XuiSceneNavigateBack(hCur, app.hMainScene, XUSER_INDEX_ANY); } else @@ -1028,7 +1020,7 @@ HRESULT CRetroArchShaderBrowser::OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHand { driver.video->set_shader(driver.video_data, (enum rarch_shader_type)g_settings.video.shader_type, g_settings.video.second_pass_shader, RARCH_SHADER_INDEX_PASS1); if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, 180); + rmenu_settings_msg(S_MSG_SHADER_LOADING_SUCCEEDED, S_DELAY_180); } else RARCH_ERR("Shaders are unsupported on this platform.\n"); @@ -1107,7 +1099,7 @@ HRESULT CRetroArchMain::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) convert_char_to_wchar(strw_buffer, g_extern.title_buf, sizeof(strw_buffer)); m_core.SetText(strw_buffer); - menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_RARCH_VERSION, sizeof(strw_buffer)); + rmenu_settings_create_menu_item_label_w(strw_buffer, S_LBL_RARCH_VERSION, sizeof(strw_buffer)); m_title.SetText(strw_buffer); return 0; @@ -1152,7 +1144,7 @@ HRESULT CRetroArchMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled ) hCur = app.hControlsMenu; if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_CHANGE_CONTROLS, 180); + rmenu_settings_msg(S_MSG_CHANGE_CONTROLS, S_DELAY_180); NavigateForward(app.hControlsMenu); } @@ -1165,7 +1157,7 @@ HRESULT CRetroArchMain::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled ) hCur = app.hCoreBrowser; if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_SELECT_LIBRETRO_CORE, 180); + rmenu_settings_msg(S_MSG_SELECT_LIBRETRO_CORE, S_DELAY_180); NavigateForward(app.hCoreBrowser); } @@ -1320,7 +1312,7 @@ bool menu_iterate(void) if (g_extern.lifecycle_mode_state & (1ULL << MODE_LOAD_GAME)) { if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - rarch_settings_msg(S_MSG_LOADING_ROM, 100); + rmenu_settings_msg(S_MSG_LOADING_ROM, 100); g_extern.lifecycle_mode_state |= (1ULL << MODE_INIT); g_extern.lifecycle_mode_state &= ~(1ULL << MODE_LOAD_GAME); diff --git a/settings.c b/settings.c index 65926b3519..ab9aead207 100644 --- a/settings.c +++ b/settings.c @@ -1,6 +1,5 @@ /* RetroArch - A frontend for libretro. * Copyright (C) 2010-2013 - Hans-Kristian Arntzen - * Copyright (C) 2011-2013 - Daniel De Matteis * * RetroArch is free software: you can redistribute it and/or modify it under the terms * of the GNU General Public License as published by the Free Software Found- @@ -15,7 +14,6 @@ */ #include "general.h" -#include "settings.h" #include "conf/config_file.h" #include "conf/config_file_macros.h" #include "compat/strl.h" @@ -1323,284 +1321,3 @@ bool config_save_keybinds(const char *path) return true; } -void rarch_settings_set(unsigned setting) -{ - switch(setting) - { - case S_ASPECT_RATIO_DECREMENT: - if(g_settings.video.aspect_ratio_idx > 0) - g_settings.video.aspect_ratio_idx--; - break; - case S_ASPECT_RATIO_INCREMENT: - if(g_settings.video.aspect_ratio_idx < LAST_ASPECT_RATIO) - g_settings.video.aspect_ratio_idx++; - break; - case S_AUDIO_MUTE: - g_extern.audio_data.mute = !g_extern.audio_data.mute; - break; - case S_AUDIO_CONTROL_RATE_DECREMENT: - if (g_settings.audio.rate_control_delta > 0.0) - g_settings.audio.rate_control_delta -= 0.001; - if (g_settings.audio.rate_control_delta == 0.0) - g_settings.audio.rate_control = false; - else - g_settings.audio.rate_control = true; - break; - case S_AUDIO_CONTROL_RATE_INCREMENT: - if (g_settings.audio.rate_control_delta < 0.2) - g_settings.audio.rate_control_delta += 0.001; - g_settings.audio.rate_control = true; - break; - case S_FRAME_ADVANCE: - g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE); - g_extern.lifecycle_mode_state |= (1ULL << MODE_GAME); - break; - case S_HW_TEXTURE_FILTER: - g_settings.video.smooth = !g_settings.video.smooth; - break; - case S_HW_TEXTURE_FILTER_2: - g_settings.video.second_pass_smooth = !g_settings.video.second_pass_smooth; - break; - case S_OVERSCAN_DECREMENT: - g_extern.console.screen.overscan_amount -= 0.01f; - g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_OVERSCAN_ENABLE); - if(g_extern.console.screen.overscan_amount == 0.0f) - g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE); - break; - case S_OVERSCAN_INCREMENT: - g_extern.console.screen.overscan_amount += 0.01f; - g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_OVERSCAN_ENABLE); - if(g_extern.console.screen.overscan_amount == 0.0f) - g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE); - break; - case S_RESOLUTION_PREVIOUS: - if (g_extern.console.screen.resolutions.current.idx) - { - g_extern.console.screen.resolutions.current.idx--; - g_extern.console.screen.resolutions.current.id = g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx]; - } - break; - case S_RESOLUTION_NEXT: - if (g_extern.console.screen.resolutions.current.idx + 1 < g_extern.console.screen.resolutions.count) - { - g_extern.console.screen.resolutions.current.idx++; - g_extern.console.screen.resolutions.current.id = g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx]; - } - break; - case S_ROTATION_DECREMENT: - if(g_extern.console.screen.orientation > 0) - g_extern.console.screen.orientation--; - break; - case S_ROTATION_INCREMENT: - if(g_extern.console.screen.orientation < LAST_ORIENTATION) - g_extern.console.screen.orientation++; - break; - case S_REWIND: - g_settings.rewind_enable = !g_settings.rewind_enable; - break; - case S_SAVESTATE_DECREMENT: - if(g_extern.state_slot != 0) - g_extern.state_slot--; - break; - case S_SAVESTATE_INCREMENT: - g_extern.state_slot++; - break; - case S_SCALE_ENABLED: - g_settings.video.render_to_texture = !g_settings.video.render_to_texture; - break; - case S_SCALE_FACTOR_DECREMENT: - g_settings.video.fbo.scale_x -= 1.0f; - g_settings.video.fbo.scale_y -= 1.0f; - break; - case S_SCALE_FACTOR_INCREMENT: - g_settings.video.fbo.scale_x += 1.0f; - g_settings.video.fbo.scale_y += 1.0f; - break; - case S_THROTTLE: - if(!g_extern.system.force_nonblock) - { - if (g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_THROTTLE_ENABLE)) - g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_THROTTLE_ENABLE); - else - g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_THROTTLE_ENABLE); - } - break; - case S_TRIPLE_BUFFERING: - if (g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE)) - g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE); - else - g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE); - break; - case S_REFRESH_RATE_DECREMENT: - g_settings.video.refresh_rate -= 0.01f; - break; - case S_REFRESH_RATE_INCREMENT: - g_settings.video.refresh_rate += 0.01f; - break; - case S_INFO_DEBUG_MSG_TOGGLE: - if (g_extern.lifecycle_mode_state & (1ULL << MODE_FPS_DRAW)) - g_extern.lifecycle_mode_state &= ~(1ULL << MODE_FPS_DRAW); - else - g_extern.lifecycle_mode_state |= (1ULL << MODE_FPS_DRAW); - break; - case S_INFO_MSG_TOGGLE: - if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW)) - g_extern.lifecycle_mode_state &= ~(1ULL << MODE_INFO_DRAW); - else - g_extern.lifecycle_mode_state |= (1ULL << MODE_INFO_DRAW); - break; - default: - RARCH_WARN("rarch_settings_set - unhandled action.\n"); - } -} - -void rarch_settings_set_default(unsigned setting) -{ - switch(setting) - { - case S_DEF_ASPECT_RATIO: - g_settings.video.aspect_ratio_idx = ASPECT_RATIO_4_3; - break; - case S_DEF_AUDIO_MUTE: - g_extern.audio_data.mute = false; - break; - case S_DEF_AUDIO_CONTROL_RATE: -#ifdef GEKKO - g_settings.audio.rate_control_delta = 0.006; - g_settings.audio.rate_control = true; -#else - g_settings.audio.rate_control_delta = 0.0; - g_settings.audio.rate_control = false; -#endif - break; - case S_DEF_HW_TEXTURE_FILTER: - g_settings.video.smooth = 1; - break; - case S_DEF_HW_TEXTURE_FILTER_2: - g_settings.video.second_pass_smooth = 1; - break; - case S_DEF_OVERSCAN: - g_extern.console.screen.overscan_amount = 0.0f; - g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE); - break; - case S_DEF_ROTATION: - g_extern.console.screen.orientation = ORIENTATION_NORMAL; - break; - case S_DEF_THROTTLE: - if(!g_extern.system.force_nonblock) - g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_THROTTLE_ENABLE); - break; - case S_DEF_TRIPLE_BUFFERING: - g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE); - break; - case S_DEF_SAVE_STATE: - g_extern.state_slot = 0; - break; - case S_DEF_SCALE_ENABLED: - g_settings.video.render_to_texture = true; - g_settings.video.fbo.scale_x = 2.0f; - g_settings.video.fbo.scale_y = 2.0f; - break; - case S_DEF_SCALE_FACTOR: - g_settings.video.fbo.scale_x = 2.0f; - g_settings.video.fbo.scale_y = 2.0f; - break; - case S_DEF_REFRESH_RATE: -#if defined(RARCH_CONSOLE) - g_settings.video.refresh_rate = 59.92; -#else - g_settings.video.refresh_rate = 59.95; -#endif - break; - case S_DEF_INFO_DEBUG_MSG: - g_extern.lifecycle_mode_state &= ~(1ULL << MODE_FPS_DRAW); - break; - case S_DEF_INFO_MSG: - g_extern.lifecycle_mode_state |= (1ULL << MODE_INFO_DRAW); - break; - default: - RARCH_WARN("rarch_settings_set_default: unhandled action.\n"); - } -} - -void rarch_settings_msg(unsigned setting, unsigned delay) -{ - char str[PATH_MAX], tmp[PATH_MAX]; - msg_queue_clear(g_extern.msg_queue); - - (void)tmp; - - switch(setting) - { - case S_MSG_CACHE_PARTITION: - snprintf(str, sizeof(str), "INFO - All the contents of the ZIP files you have selected\nare extracted to this partition."); - break; - case S_MSG_CHANGE_CONTROLS: - snprintf(str, sizeof(str), "INFO - Press LEFT/RIGHT to change the controls, and press\n[RetroPad Start] to reset a button to default values."); - break; - case S_MSG_LOADING_ROM: - fill_pathname_base(tmp, g_extern.fullpath, sizeof(tmp)); - snprintf(str, sizeof(str), "INFO - Loading %s...", tmp); - break; - case S_MSG_DIR_LOADING_ERROR: - snprintf(str, sizeof(str), "ERROR - Failed to open selected directory."); - break; - case S_MSG_ROM_LOADING_ERROR: - snprintf(str, sizeof(str), "ERROR - An error occurred during ROM loading."); - break; - case S_MSG_NOT_IMPLEMENTED: - snprintf(str, sizeof(str), "TODO - Not yet implemented."); - break; - case S_MSG_RESIZE_SCREEN: - snprintf(str, sizeof(str), "INFO - Resize the screen by moving around the two analog sticks.\nPress [RetroPad X] to reset to default values, and [RetroPad A] to go back.\nTo select the resized screen mode, set Aspect Ratio to: 'Custom'."); - break; - case S_MSG_RESTART_RARCH: - snprintf(str, sizeof(str), "INFO - You need to restart RetroArch."); - break; - case S_MSG_SELECT_LIBRETRO_CORE: - snprintf(str, sizeof(str), "INFO - Select a Libretro core from the menu."); - break; - case S_MSG_SELECT_SHADER: - snprintf(str, sizeof(str), "INFO - Select a shader from the menu."); - break; - case S_MSG_SHADER_LOADING_SUCCEEDED: - snprintf(str, sizeof(str), "INFO - Shader successfully loaded."); - break; - } - - msg_queue_push(g_extern.msg_queue, str, 1, delay); -} - -void menu_settings_create_menu_item_label(char * str, unsigned setting, size_t size) -{ - switch (setting) - { - case S_LBL_ASPECT_RATIO: - snprintf(str, size, "Aspect Ratio: %s", aspectratio_lut[g_settings.video.aspect_ratio_idx].name); - break; - case S_LBL_SHADER: - snprintf(str, size, "Shader #1: %s", g_settings.video.cg_shader_path); - break; - case S_LBL_SHADER_2: - snprintf(str, size, "Shader #2: %s", g_settings.video.second_pass_shader); - break; - case S_LBL_RARCH_VERSION: - snprintf(str, size, "RetroArch %s", PACKAGE_VERSION); - break; - case S_LBL_SCALE_FACTOR: - snprintf(str, size, "Scale Factor: %f (X) / %f (Y)", g_settings.video.fbo.scale_x, g_settings.video.fbo.scale_y); - break; - case S_LBL_ROTATION: - snprintf(str, size, "Rotation: %s", rotation_lut[g_extern.console.screen.orientation]); - break; - case S_LBL_LOAD_STATE_SLOT: - snprintf(str, size, "Load State #%d", g_extern.state_slot); - break; - case S_LBL_SAVE_STATE_SLOT: - snprintf(str, size, "Save State #%d", g_extern.state_slot); - break; - case S_LBL_REWIND_GRANULARITY: - snprintf(str, size, "Rewind granularity: %d", g_settings.rewind_granularity); - break; - } -}