Add label to file_list_push

This commit is contained in:
twinaphex 2014-08-07 08:27:24 +02:00
parent 2d9cdf9192
commit 6b5a049bc5
5 changed files with 224 additions and 214 deletions

View File

@ -168,7 +168,7 @@ typedef struct menu_ctx_driver
void (*navigation_set_last)(void *);
void (*navigation_descend_alphabet)(void *, size_t *);
void (*navigation_ascend_alphabet)(void *, size_t *);
void (*list_insert)(void *, const char *, size_t);
void (*list_insert)(void *, const char *, const char *, size_t);
void (*list_delete)(void *, size_t);
void (*list_clear)(void *);
void (*list_set_selection)(void *);

View File

@ -24,13 +24,15 @@
struct item_file
{
char *path;
char *label;
char *alt;
unsigned type;
size_t directory_ptr;
};
void file_list_push(file_list_t *list,
const char *path, unsigned type, size_t directory_ptr)
const char *path, const char *label,
unsigned type, size_t directory_ptr)
{
if (!list)
return;
@ -43,9 +45,11 @@ void file_list_push(file_list_t *list,
}
if (driver.menu_ctx && driver.menu_ctx->list_insert)
driver.menu_ctx->list_insert(list, path, list->size);
driver.menu_ctx->list_insert(list, path, label, list->size);
list->list[list->size].path = strdup(path);
list->list[list->size].label = strdup(label);
list->list[list->size].alt = NULL;
list->list[list->size].type = type;
list->list[list->size].directory_ptr = directory_ptr;
@ -70,7 +74,9 @@ void file_list_pop(file_list_t *list, size_t *directory_ptr)
{
if (driver.menu_ctx && driver.menu_ctx->list_delete)
driver.menu_ctx->list_delete(list, list->size);
free(list->list[--list->size].path);
--list->size;
free(list->list[list->size].path);
free(list->list[list->size].label);
}
if (directory_ptr)
@ -85,7 +91,10 @@ void file_list_free(file_list_t *list)
size_t i;
for (i = 0; i < list->size; i++)
{
free(list->list[i].path);
free(list->list[i].label);
}
free(list->list);
free(list);
}
@ -97,6 +106,7 @@ void file_list_clear(file_list_t *list)
for (i = 0; i < list->size; i++)
{
free(list->list[i].path);
free(list->list[i].label);
free(list->list[i].alt);
}

View File

@ -35,7 +35,7 @@ typedef struct file_list
void file_list_free(file_list_t *list);
void file_list_push(file_list_t *userdata, const char *path,
unsigned type, size_t current_directory_ptr);
const char *label, unsigned type, size_t current_directory_ptr);
void file_list_pop(file_list_t *list, size_t *directory_ptr);
void file_list_clear(file_list_t *list);

View File

@ -81,7 +81,7 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
struct gfx_shader *shader = (struct gfx_shader*)shader_manager_get_current_shader(menu, menu_type);
if (shader)
for (i = 0; i < shader->num_parameters; i++)
file_list_push(menu->selection_buf, shader->parameters[i].desc, MENU_SETTINGS_SHADER_PARAMETER_0 + i, 0);
file_list_push(menu->selection_buf, shader->parameters[i].desc, "", MENU_SETTINGS_SHADER_PARAMETER_0 + i, 0);
menu->parameter_shader = shader;
break;
}
@ -93,18 +93,18 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
return;
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "Apply Shader Changes",
file_list_push(menu->selection_buf, "Apply Shader Changes", "",
MENU_SETTINGS_SHADER_APPLY, 0);
file_list_push(menu->selection_buf, "Default Filter", MENU_SETTINGS_SHADER_FILTER, 0);
file_list_push(menu->selection_buf, "Load Shader Preset",
file_list_push(menu->selection_buf, "Default Filter", "", MENU_SETTINGS_SHADER_FILTER, 0);
file_list_push(menu->selection_buf, "Load Shader Preset", "",
MENU_SETTINGS_SHADER_PRESET, 0);
file_list_push(menu->selection_buf, "Save As Shader Preset",
file_list_push(menu->selection_buf, "Save As Shader Preset", "",
MENU_SETTINGS_SHADER_PRESET_SAVE, 0);
file_list_push(menu->selection_buf, "Parameters (Current)",
file_list_push(menu->selection_buf, "Parameters (Current)", "",
MENU_SETTINGS_SHADER_PARAMETERS, 0);
file_list_push(menu->selection_buf, "Parameters (Menu)",
file_list_push(menu->selection_buf, "Parameters (Menu)", "",
MENU_SETTINGS_SHADER_PRESET_PARAMETERS, 0);
file_list_push(menu->selection_buf, "Shader Passes",
file_list_push(menu->selection_buf, "Shader Passes", "",
MENU_SETTINGS_SHADER_PASSES, 0);
for (i = 0; i < shader->passes; i++)
@ -112,15 +112,15 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
char buf[64];
snprintf(buf, sizeof(buf), "Shader #%u", i);
file_list_push(menu->selection_buf, buf,
file_list_push(menu->selection_buf, buf, "",
MENU_SETTINGS_SHADER_0 + 3 * i, 0);
snprintf(buf, sizeof(buf), "Shader #%u Filter", i);
file_list_push(menu->selection_buf, buf,
file_list_push(menu->selection_buf, buf, "",
MENU_SETTINGS_SHADER_0_FILTER + 3 * i, 0);
snprintf(buf, sizeof(buf), "Shader #%u Scale", i);
file_list_push(menu->selection_buf, buf,
file_list_push(menu->selection_buf, buf, "",
MENU_SETTINGS_SHADER_0_SCALE + 3 * i, 0);
}
}
@ -129,119 +129,119 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
case MENU_SETTINGS_GENERAL_OPTIONS:
file_list_clear(menu->selection_buf);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "libretro_log_level")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_LIBRETRO_LOG_LEVEL, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "libretro_log_level", MENU_SETTINGS_LIBRETRO_LOG_LEVEL, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "log_verbosity")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_LOGGING_VERBOSITY, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "log_verbosity", MENU_SETTINGS_LOGGING_VERBOSITY, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "perfcnt_enable")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_PERFORMANCE_COUNTERS_ENABLE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "perfcnt_enable", MENU_SETTINGS_PERFORMANCE_COUNTERS_ENABLE, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "game_history_size")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_CONTENT_HISTORY_SIZE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "game_history_size", MENU_CONTENT_HISTORY_SIZE, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "config_save_on_exit")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_CONFIG_SAVE_ON_EXIT, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "config_save_on_exit", MENU_SETTINGS_CONFIG_SAVE_ON_EXIT, 0);
if ((current_setting = setting_data_find_setting(setting_data, "core_specific_config")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_PER_CORE_CONFIG, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "core_specific_config", MENU_SETTINGS_PER_CORE_CONFIG, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_gpu_screenshot")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_GPU_SCREENSHOT, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "video_gpu_screenshot", MENU_SETTINGS_GPU_SCREENSHOT, 0);
if ((current_setting = setting_data_find_setting(setting_data, "dummy_on_core_shutdown")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_LOAD_DUMMY_ON_CORE_SHUTDOWN, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "dummy_on_core_shutdown", MENU_SETTINGS_LOAD_DUMMY_ON_CORE_SHUTDOWN, 0);
if ((current_setting = setting_data_find_setting(setting_data, "fps_show")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_DEBUG_TEXT, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "fps_show", MENU_SETTINGS_DEBUG_TEXT, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "fastforward_ratio")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_FASTFORWARD_RATIO, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "fastforward_ratio", MENU_SETTINGS_FASTFORWARD_RATIO, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "slowmotion_ratio")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_SLOWMOTION_RATIO, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "slowmotion_ratio", MENU_SETTINGS_SLOWMOTION_RATIO, 0);
if ((current_setting = setting_data_find_setting(setting_data, "rewind_enable")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_REWIND_ENABLE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "rewind_enable", MENU_SETTINGS_REWIND_ENABLE, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "rewind_granularity")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_REWIND_GRANULARITY, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "rewind_granularity", MENU_SETTINGS_REWIND_GRANULARITY, 0);
if ((current_setting = setting_data_find_setting(setting_data, "block_sram_overwrite")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_BLOCK_SRAM_OVERWRITE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "block_sram_overwrite", MENU_SETTINGS_BLOCK_SRAM_OVERWRITE, 0);
#ifdef HAVE_THREADS
if ((current_setting = setting_data_find_setting(setting_data, "autosave_interval")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_SRAM_AUTOSAVE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "autosave_interval", MENU_SETTINGS_SRAM_AUTOSAVE, 0);
#endif
if ((current_setting = setting_data_find_setting(setting_data, "video_disable_composition")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_WINDOW_COMPOSITING_ENABLE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "video_disable_composition", MENU_SETTINGS_WINDOW_COMPOSITING_ENABLE, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "pause_nonactive")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_PAUSE_IF_WINDOW_FOCUS_LOST, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "pause_nonactive", MENU_SETTINGS_PAUSE_IF_WINDOW_FOCUS_LOST, 0);
if ((current_setting = setting_data_find_setting(setting_data, "savestate_auto_save")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_SAVESTATE_AUTO_SAVE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "savestate_auto_save", MENU_SETTINGS_SAVESTATE_AUTO_SAVE, 0);
if ((current_setting = setting_data_find_setting(setting_data, "savestate_auto_load")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_SAVESTATE_AUTO_LOAD, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "savestate_auto_load", MENU_SETTINGS_SAVESTATE_AUTO_LOAD, 0);
break;
case MENU_SETTINGS_VIDEO_OPTIONS:
file_list_clear(menu->selection_buf);
if ((current_setting = setting_data_find_setting(setting_data, "video_shared_context")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_HW_SHARED_CONTEXT, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "video_shared_context", MENU_SETTINGS_VIDEO_HW_SHARED_CONTEXT, 0);
#if defined(GEKKO) || defined(__CELLOS_LV2__)
file_list_push(menu->selection_buf, "Screen Resolution", MENU_SETTINGS_VIDEO_RESOLUTION, 0);
file_list_push(menu->selection_buf, "Screen Resolution", "", MENU_SETTINGS_VIDEO_RESOLUTION, 0);
#endif
file_list_push(menu->selection_buf, "Software Filter", MENU_SETTINGS_VIDEO_SOFTFILTER, 0);
file_list_push(menu->selection_buf, "Software Filter", "", MENU_SETTINGS_VIDEO_SOFTFILTER, 0);
#if defined(__CELLOS_LV2__)
file_list_push(menu->selection_buf, "PAL60 Mode", MENU_SETTINGS_VIDEO_PAL60, 0);
file_list_push(menu->selection_buf, "PAL60 Mode", "", MENU_SETTINGS_VIDEO_PAL60, 0);
#endif
if ((current_setting = setting_data_find_setting(setting_data, "video_smooth")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_FILTER, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_FILTER, 0);
#ifdef HW_RVL
file_list_push(menu->selection_buf, "VI Trap filtering", MENU_SETTINGS_VIDEO_SOFT_FILTER, 0);
file_list_push(menu->selection_buf, "VI Trap filtering", "", MENU_SETTINGS_VIDEO_SOFT_FILTER, 0);
#endif
#if defined(HW_RVL) || defined(_XBOX360)
file_list_push(menu->selection_buf, "Gamma", MENU_SETTINGS_VIDEO_GAMMA, 0);
file_list_push(menu->selection_buf, "Gamma", "", MENU_SETTINGS_VIDEO_GAMMA, 0);
#endif
#ifdef _XBOX1
file_list_push(menu->selection_buf, "Soft filtering", MENU_SETTINGS_SOFT_DISPLAY_FILTER, 0);
file_list_push(menu->selection_buf, "Flicker filtering", MENU_SETTINGS_FLICKER_FILTER, 0);
file_list_push(menu->selection_buf, "Soft filtering", "", MENU_SETTINGS_SOFT_DISPLAY_FILTER, 0);
file_list_push(menu->selection_buf, "Flicker filtering", "", MENU_SETTINGS_FLICKER_FILTER, 0);
#endif
if ((current_setting = setting_data_find_setting(setting_data, "video_scale_integer")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_INTEGER_SCALE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_INTEGER_SCALE, 0);
if ((current_setting = setting_data_find_setting(setting_data, "aspect_ratio_index")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_ASPECT_RATIO, 0);
file_list_push(menu->selection_buf, "Custom Ratio", MENU_SETTINGS_CUSTOM_VIEWPORT, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_ASPECT_RATIO, 0);
file_list_push(menu->selection_buf, "Custom Ratio", "", MENU_SETTINGS_CUSTOM_VIEWPORT, 0);
#if !defined(RARCH_CONSOLE) && !defined(RARCH_MOBILE)
if ((current_setting = setting_data_find_setting(setting_data, "video_fullscreen")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_TOGGLE_FULLSCREEN, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_TOGGLE_FULLSCREEN, 0);
#endif
if ((current_setting = setting_data_find_setting(setting_data, "video_rotation")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_ROTATION, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_ROTATION, 0);
if ((current_setting = setting_data_find_setting(setting_data, "video_vsync")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_VSYNC, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_VSYNC, 0);
if ((current_setting = setting_data_find_setting(setting_data, "video_hard_sync")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_HARD_SYNC, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_HARD_SYNC, 0);
if ((current_setting = setting_data_find_setting(setting_data, "video_hard_sync_frames")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_HARD_SYNC_FRAMES, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_HARD_SYNC_FRAMES, 0);
#if !defined(RARCH_MOBILE)
if ((current_setting = setting_data_find_setting(setting_data, "video_black_frame_insertion")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_BLACK_FRAME_INSERTION, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_BLACK_FRAME_INSERTION, 0);
#endif
if ((current_setting = setting_data_find_setting(setting_data, "video_swap_interval")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_SWAP_INTERVAL, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_SWAP_INTERVAL, 0);
#if defined(HAVE_THREADS) && !defined(RARCH_CONSOLE)
if ((current_setting = setting_data_find_setting(setting_data, "video_threaded")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_THREADED, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_THREADED, 0);
#endif
#if !defined(RARCH_CONSOLE) && !defined(RARCH_MOBILE)
if ((current_setting = setting_data_find_setting(setting_data, "video_xscale")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_WINDOW_SCALE_X, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_WINDOW_SCALE_X, 0);
if ((current_setting = setting_data_find_setting(setting_data, "video_yscale")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_WINDOW_SCALE_Y, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_WINDOW_SCALE_Y, 0);
#endif
if ((current_setting = setting_data_find_setting(setting_data, "video_crop_overscan")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_CROP_OVERSCAN, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_CROP_OVERSCAN, 0);
if ((current_setting = setting_data_find_setting(setting_data, "video_monitor_index")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_MONITOR_INDEX, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_MONITOR_INDEX, 0);
if ((current_setting = setting_data_find_setting(setting_data, "video_refresh_rate")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_VIDEO_REFRESH_RATE, 0);
file_list_push(menu->selection_buf, "Estimated Refresh Rate", MENU_SETTINGS_VIDEO_REFRESH_RATE_AUTO, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_VIDEO_REFRESH_RATE, 0);
file_list_push(menu->selection_buf, "Estimated Refresh Rate", "", MENU_SETTINGS_VIDEO_REFRESH_RATE_AUTO, 0);
break;
case MENU_SETTINGS_FONT_OPTIONS:
file_list_clear(menu->selection_buf);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_font_enable")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_FONT_ENABLE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_FONT_ENABLE, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_font_size")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_FONT_SIZE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_FONT_SIZE, 0);
break;
case MENU_SETTINGS_CORE_OPTIONS:
file_list_clear(menu->selection_buf);
@ -253,10 +253,10 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
opts = core_option_size(g_extern.system.core_options);
for (i = 0; i < opts; i++)
file_list_push(menu->selection_buf,
core_option_get_desc(g_extern.system.core_options, i), MENU_SETTINGS_CORE_OPTION_START + i, 0);
core_option_get_desc(g_extern.system.core_options, i), "", MENU_SETTINGS_CORE_OPTION_START + i, 0);
}
else
file_list_push(menu->selection_buf, "No options available.", MENU_SETTINGS_CORE_OPTION_NONE, 0);
file_list_push(menu->selection_buf, "No options available.", "", MENU_SETTINGS_CORE_OPTION_NONE, 0);
break;
case MENU_SETTINGS_CORE_INFO:
{
@ -267,27 +267,27 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
{
snprintf(tmp, sizeof(tmp), "Core name: %s",
info->display_name ? info->display_name : "");
file_list_push(menu->selection_buf, tmp, MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
if (info->authors_list)
{
strlcpy(tmp, "Authors: ", sizeof(tmp));
string_list_join_concat(tmp, sizeof(tmp), info->authors_list, ", ");
file_list_push(menu->selection_buf, tmp, MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
}
if (info->permissions_list)
{
strlcpy(tmp, "Permissions: ", sizeof(tmp));
string_list_join_concat(tmp, sizeof(tmp), info->permissions_list, ", ");
file_list_push(menu->selection_buf, tmp, MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
}
if (info->supported_extensions_list)
{
strlcpy(tmp, "Supported extensions: ", sizeof(tmp));
string_list_join_concat(tmp, sizeof(tmp), info->supported_extensions_list, ", ");
file_list_push(menu->selection_buf, tmp, MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
}
if (info->firmware_count > 0)
@ -295,19 +295,19 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
core_info_list_update_missing_firmware(menu->core_info, info->path,
g_settings.system_directory);
file_list_push(menu->selection_buf, "Firmware: ", MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, "Firmware: ", "", MENU_SETTINGS_CORE_INFO_NONE, 0);
for (i = 0; i < info->firmware_count; i++)
{
if (info->firmware[i].desc)
{
snprintf(tmp, sizeof(tmp), " name: %s",
info->firmware[i].desc ? info->firmware[i].desc : "");
file_list_push(menu->selection_buf, tmp, MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
snprintf(tmp, sizeof(tmp), " status: %s, %s",
info->firmware[i].missing ? "missing" : "present",
info->firmware[i].optional ? "optional" : "required");
file_list_push(menu->selection_buf, tmp, MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
}
}
}
@ -315,196 +315,196 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
if (info->notes)
{
snprintf(tmp, sizeof(tmp), "Core notes: ");
file_list_push(menu->selection_buf, tmp, MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
for (i = 0; i < info->note_list->size; i++)
{
snprintf(tmp, sizeof(tmp), " %s", info->note_list->elems[i].data);
file_list_push(menu->selection_buf, tmp, MENU_SETTINGS_CORE_INFO_NONE, 0);
file_list_push(menu->selection_buf, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0);
}
}
}
else
file_list_push(menu->selection_buf, "No information available.", MENU_SETTINGS_CORE_OPTION_NONE, 0);
file_list_push(menu->selection_buf, "No information available.", "", MENU_SETTINGS_CORE_OPTION_NONE, 0);
}
break;
case MENU_SETTINGS_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "Driver Options", MENU_SETTINGS_DRIVERS, 0);
file_list_push(menu->selection_buf, "General Options", MENU_SETTINGS_GENERAL_OPTIONS, 0);
file_list_push(menu->selection_buf, "Video Options", MENU_SETTINGS_VIDEO_OPTIONS, 0);
file_list_push(menu->selection_buf, "Driver Options", "", MENU_SETTINGS_DRIVERS, 0);
file_list_push(menu->selection_buf, "General Options", "", MENU_SETTINGS_GENERAL_OPTIONS, 0);
file_list_push(menu->selection_buf, "Video Options", "", MENU_SETTINGS_VIDEO_OPTIONS, 0);
#ifdef HAVE_SHADER_MANAGER
file_list_push(menu->selection_buf, "Shader Options", MENU_SETTINGS_SHADER_OPTIONS, 0);
file_list_push(menu->selection_buf, "Shader Options", "", MENU_SETTINGS_SHADER_OPTIONS, 0);
#endif
file_list_push(menu->selection_buf, "Font Options", MENU_SETTINGS_FONT_OPTIONS, 0);
file_list_push(menu->selection_buf, "Audio Options", MENU_SETTINGS_AUDIO_OPTIONS, 0);
file_list_push(menu->selection_buf, "Input Options", MENU_SETTINGS_INPUT_OPTIONS, 0);
file_list_push(menu->selection_buf, "Font Options", "", MENU_SETTINGS_FONT_OPTIONS, 0);
file_list_push(menu->selection_buf, "Audio Options", "", MENU_SETTINGS_AUDIO_OPTIONS, 0);
file_list_push(menu->selection_buf, "Input Options", "", MENU_SETTINGS_INPUT_OPTIONS, 0);
#ifdef HAVE_OVERLAY
file_list_push(menu->selection_buf, "Overlay Options", MENU_SETTINGS_OVERLAY_OPTIONS, 0);
file_list_push(menu->selection_buf, "Overlay Options", "", MENU_SETTINGS_OVERLAY_OPTIONS, 0);
#endif
file_list_push(menu->selection_buf, "User Options", MENU_SETTINGS_USER_OPTIONS, 0);
file_list_push(menu->selection_buf, "User Options", "", MENU_SETTINGS_USER_OPTIONS, 0);
#ifdef HAVE_NETPLAY
file_list_push(menu->selection_buf, "Netplay Options", MENU_SETTINGS_NETPLAY_OPTIONS, 0);
file_list_push(menu->selection_buf, "Netplay Options", "", MENU_SETTINGS_NETPLAY_OPTIONS, 0);
#endif
file_list_push(menu->selection_buf, "Path Options", MENU_SETTINGS_PATH_OPTIONS, 0);
file_list_push(menu->selection_buf, "Path Options", "", MENU_SETTINGS_PATH_OPTIONS, 0);
if (g_extern.main_is_init && !g_extern.libretro_dummy)
{
if (g_extern.system.disk_control.get_num_images)
file_list_push(menu->selection_buf, "Disk Options", MENU_SETTINGS_DISK_OPTIONS, 0);
file_list_push(menu->selection_buf, "Disk Options", "", MENU_SETTINGS_DISK_OPTIONS, 0);
}
file_list_push(menu->selection_buf, "Privacy Options", MENU_SETTINGS_PRIVACY_OPTIONS, 0);
file_list_push(menu->selection_buf, "Privacy Options", "", MENU_SETTINGS_PRIVACY_OPTIONS, 0);
break;
case MENU_SETTINGS_PRIVACY_OPTIONS:
file_list_clear(menu->selection_buf);
#ifdef HAVE_CAMERA
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "camera_allow")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_PRIVACY_CAMERA_ALLOW, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_PRIVACY_CAMERA_ALLOW, 0);
#endif
#ifdef HAVE_LOCATION
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "location_allow")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_PRIVACY_LOCATION_ALLOW, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_PRIVACY_LOCATION_ALLOW, 0);
#endif
break;
case MENU_SETTINGS_DISK_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "Disk Index", MENU_SETTINGS_DISK_INDEX, 0);
file_list_push(menu->selection_buf, "Disk Image Append", MENU_SETTINGS_DISK_APPEND, 0);
file_list_push(menu->selection_buf, "Disk Index", "", MENU_SETTINGS_DISK_INDEX, 0);
file_list_push(menu->selection_buf, "Disk Image Append", "", MENU_SETTINGS_DISK_APPEND, 0);
break;
case MENU_SETTINGS_OVERLAY_OPTIONS:
file_list_clear(menu->selection_buf);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "input_overlay")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_OVERLAY_PRESET, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_OVERLAY_PRESET, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "input_overlay_opacity")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_OVERLAY_OPACITY, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_OVERLAY_OPACITY, 0);
if ((current_setting = setting_data_find_setting(setting_data, "input_overlay_scale")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_OVERLAY_SCALE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_OVERLAY_SCALE, 0);
break;
case MENU_SETTINGS_USER_OPTIONS:
file_list_clear(menu->selection_buf);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_nickname")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_NETPLAY_NICKNAME, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_NETPLAY_NICKNAME, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "user_language")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_USER_LANGUAGE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_USER_LANGUAGE, 0);
break;
#ifdef HAVE_NETPLAY
case MENU_SETTINGS_NETPLAY_OPTIONS:
file_list_clear(menu->selection_buf);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_enable")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_NETPLAY_ENABLE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_NETPLAY_ENABLE, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_mode")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_NETPLAY_MODE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_NETPLAY_MODE, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_spectator_mode_enable")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_NETPLAY_SPECTATOR_MODE_ENABLE, 0);
file_list_push(menu->selection_buf, "Host IP Address", MENU_SETTINGS_NETPLAY_HOST_IP_ADDRESS, 0);
file_list_push(menu->selection_buf, "TCP/UDP Port", MENU_SETTINGS_NETPLAY_TCP_UDP_PORT, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_NETPLAY_SPECTATOR_MODE_ENABLE, 0);
file_list_push(menu->selection_buf, "Host IP Address", "", MENU_SETTINGS_NETPLAY_HOST_IP_ADDRESS, 0);
file_list_push(menu->selection_buf, "TCP/UDP Port", "", MENU_SETTINGS_NETPLAY_TCP_UDP_PORT, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_delay_frames")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_NETPLAY_DELAY_FRAMES, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_NETPLAY_DELAY_FRAMES, 0);
#endif
break;
case MENU_SETTINGS_PATH_OPTIONS:
file_list_clear(menu->selection_buf);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "rgui_browser_directory")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_BROWSER_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_BROWSER_DIR_PATH, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "content_directory")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_CONTENT_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_CONTENT_DIR_PATH, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "assets_directory")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_ASSETS_DIR_PATH, 0);
file_list_push(menu->selection_buf, "Config Directory", MENU_CONFIG_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_ASSETS_DIR_PATH, 0);
file_list_push(menu->selection_buf, "Config Directory", "", MENU_CONFIG_DIR_PATH, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "libretro_dir_path")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_LIBRETRO_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_LIBRETRO_DIR_PATH, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "libretro_info_path")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_LIBRETRO_INFO_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_LIBRETRO_INFO_DIR_PATH, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "game_history_path")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_CONTENT_HISTORY_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_CONTENT_HISTORY_PATH, 0);
#ifdef HAVE_DYLIB
file_list_push(menu->selection_buf, "Software Filter Directory", MENU_FILTER_DIR_PATH, 0);
file_list_push(menu->selection_buf, "Software Filter Directory", "", MENU_FILTER_DIR_PATH, 0);
#endif
file_list_push(menu->selection_buf, "DSP Filter Directory", MENU_DSP_FILTER_DIR_PATH, 0);
file_list_push(menu->selection_buf, "DSP Filter Directory", "", MENU_DSP_FILTER_DIR_PATH, 0);
#ifdef HAVE_SHADER_MANAGER
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "video_shader_dir")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SHADER_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SHADER_DIR_PATH, 0);
#endif
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "savestate_directory")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SAVESTATE_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SAVESTATE_DIR_PATH, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "savefile_directory")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SAVEFILE_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SAVEFILE_DIR_PATH, 0);
#ifdef HAVE_OVERLAY
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "overlay_directory")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_OVERLAY_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_OVERLAY_DIR_PATH, 0);
#endif
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "system_directory")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SYSTEM_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SYSTEM_DIR_PATH, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "screenshot_directory")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SCREENSHOT_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SCREENSHOT_DIR_PATH, 0);
file_list_push(menu->selection_buf, "Autoconfig Directory", MENU_AUTOCONFIG_DIR_PATH, 0);
file_list_push(menu->selection_buf, "Autoconfig Directory", "", MENU_AUTOCONFIG_DIR_PATH, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "extraction_directory")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_EXTRACTION_DIR_PATH, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_EXTRACTION_DIR_PATH, 0);
break;
case MENU_SETTINGS_INPUT_OPTIONS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "Player", MENU_SETTINGS_BIND_PLAYER, 0);
file_list_push(menu->selection_buf, "Device", MENU_SETTINGS_BIND_DEVICE, 0);
file_list_push(menu->selection_buf, "Device Type", MENU_SETTINGS_BIND_DEVICE_TYPE, 0);
file_list_push(menu->selection_buf, "Analog D-pad Mode", MENU_SETTINGS_BIND_ANALOG_MODE, 0);
file_list_push(menu->selection_buf, "Player", "", MENU_SETTINGS_BIND_PLAYER, 0);
file_list_push(menu->selection_buf, "Device", "", MENU_SETTINGS_BIND_DEVICE, 0);
file_list_push(menu->selection_buf, "Device Type", "", MENU_SETTINGS_BIND_DEVICE_TYPE, 0);
file_list_push(menu->selection_buf, "Analog D-pad Mode", "", MENU_SETTINGS_BIND_ANALOG_MODE, 0);
if ((current_setting = setting_data_find_setting(setting_data, "input_axis_threshold")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_INPUT_AXIS_THRESHOLD, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_INPUT_AXIS_THRESHOLD, 0);
if ((current_setting = setting_data_find_setting(setting_data, "input_autodetect_enable")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_DEVICE_AUTODETECT_ENABLE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_DEVICE_AUTODETECT_ENABLE, 0);
file_list_push(menu->selection_buf, "Bind Mode", MENU_SETTINGS_CUSTOM_BIND_MODE, 0);
file_list_push(menu->selection_buf, "Configure All (RetroPad)", MENU_SETTINGS_CUSTOM_BIND_ALL, 0);
file_list_push(menu->selection_buf, "Default All (RetroPad)", MENU_SETTINGS_CUSTOM_BIND_DEFAULT_ALL, 0);
file_list_push(menu->selection_buf, "Bind Mode", "", MENU_SETTINGS_CUSTOM_BIND_MODE, 0);
file_list_push(menu->selection_buf, "Configure All (RetroPad)", "", MENU_SETTINGS_CUSTOM_BIND_ALL, 0);
file_list_push(menu->selection_buf, "Default All (RetroPad)", "", MENU_SETTINGS_CUSTOM_BIND_DEFAULT_ALL, 0);
#ifdef HAVE_OSK
if ((current_setting = setting_data_find_setting(setting_data, "osk_enable")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_ONSCREEN_KEYBOARD_ENABLE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_ONSCREEN_KEYBOARD_ENABLE, 0);
#endif
last = (driver.input && driver.input->set_keybinds && !driver.input->get_joypad_driver) ? (MENU_SETTINGS_BIND_BEGIN + RETRO_DEVICE_ID_JOYPAD_R3) : MENU_SETTINGS_BIND_ALL_LAST;
for (i = MENU_SETTINGS_BIND_BEGIN; i <= last; i++)
file_list_push(menu->selection_buf, input_config_bind_map[i - MENU_SETTINGS_BIND_BEGIN].desc, i, 0);
file_list_push(menu->selection_buf, input_config_bind_map[i - MENU_SETTINGS_BIND_BEGIN].desc, "", i, 0);
break;
case MENU_SETTINGS_AUDIO_OPTIONS:
file_list_clear(menu->selection_buf);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "audio_dsp_plugin")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_AUDIO_DSP_FILTER, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_AUDIO_DSP_FILTER, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "audio_enable")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_AUDIO_ENABLE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_AUDIO_ENABLE, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "audio_mute")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_AUDIO_MUTE, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_AUDIO_MUTE, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "audio_latency")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_AUDIO_LATENCY, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_AUDIO_LATENCY, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "audio_sync")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_AUDIO_SYNC, 0);
file_list_push(menu->selection_buf, "Rate Control Delta", MENU_SETTINGS_AUDIO_CONTROL_RATE_DELTA, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_AUDIO_SYNC, 0);
file_list_push(menu->selection_buf, "Rate Control Delta", "", MENU_SETTINGS_AUDIO_CONTROL_RATE_DELTA, 0);
#ifdef __CELLOS_LV2__
file_list_push(menu->selection_buf, "System BGM Control", MENU_SETTINGS_CUSTOM_BGM_CONTROL_ENABLE, 0);
file_list_push(menu->selection_buf, "System BGM Control", "", MENU_SETTINGS_CUSTOM_BGM_CONTROL_ENABLE, 0);
#endif
file_list_push(menu->selection_buf, "Volume Level", MENU_SETTINGS_AUDIO_VOLUME, 0);
file_list_push(menu->selection_buf, "Audio Device", MENU_SETTINGS_DRIVER_AUDIO_DEVICE, 0);
file_list_push(menu->selection_buf, "Volume Level", "", MENU_SETTINGS_AUDIO_VOLUME, 0);
file_list_push(menu->selection_buf, "Audio Device", "", MENU_SETTINGS_DRIVER_AUDIO_DEVICE, 0);
break;
case MENU_SETTINGS_DRIVERS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "Video Driver", MENU_SETTINGS_DRIVER_VIDEO, 0);
file_list_push(menu->selection_buf, "Audio Driver", MENU_SETTINGS_DRIVER_AUDIO, 0);
file_list_push(menu->selection_buf, "Audio Resampler", MENU_SETTINGS_DRIVER_AUDIO_RESAMPLER, 0);
file_list_push(menu->selection_buf, "Input Driver", MENU_SETTINGS_DRIVER_INPUT, 0);
file_list_push(menu->selection_buf, "Video Driver", "", MENU_SETTINGS_DRIVER_VIDEO, 0);
file_list_push(menu->selection_buf, "Audio Driver", "", MENU_SETTINGS_DRIVER_AUDIO, 0);
file_list_push(menu->selection_buf, "Audio Resampler", "", MENU_SETTINGS_DRIVER_AUDIO_RESAMPLER, 0);
file_list_push(menu->selection_buf, "Input Driver", "", MENU_SETTINGS_DRIVER_INPUT, 0);
#ifdef HAVE_CAMERA
file_list_push(menu->selection_buf, "Camera Driver", MENU_SETTINGS_DRIVER_CAMERA, 0);
file_list_push(menu->selection_buf, "Camera Driver", "", MENU_SETTINGS_DRIVER_CAMERA, 0);
#endif
#ifdef HAVE_LOCATION
file_list_push(menu->selection_buf, "Location Driver", MENU_SETTINGS_DRIVER_LOCATION, 0);
file_list_push(menu->selection_buf, "Location Driver", "", MENU_SETTINGS_DRIVER_LOCATION, 0);
#endif
#ifdef HAVE_MENU
file_list_push(menu->selection_buf, "Menu Driver", MENU_SETTINGS_DRIVER_MENU, 0);
file_list_push(menu->selection_buf, "Menu Driver", "", MENU_SETTINGS_DRIVER_MENU, 0);
#endif
break;
case MENU_SETTINGS_PERFORMANCE_COUNTERS:
file_list_clear(menu->selection_buf);
file_list_push(menu->selection_buf, "Frontend Counters", MENU_SETTINGS_PERFORMANCE_COUNTERS_FRONTEND, 0);
file_list_push(menu->selection_buf, "Core Counters", MENU_SETTINGS_PERFORMANCE_COUNTERS_LIBRETRO, 0);
file_list_push(menu->selection_buf, "Frontend Counters", "", MENU_SETTINGS_PERFORMANCE_COUNTERS_FRONTEND, 0);
file_list_push(menu->selection_buf, "Core Counters", "", MENU_SETTINGS_PERFORMANCE_COUNTERS_LIBRETRO, 0);
break;
case MENU_SETTINGS_PERFORMANCE_COUNTERS_LIBRETRO:
file_list_clear(menu->selection_buf);
@ -517,7 +517,7 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
for (i = 0; i < num; i++)
if (counters[i] && counters[i]->ident)
file_list_push(menu->selection_buf, counters[i]->ident, MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_BEGIN + i, 0);
file_list_push(menu->selection_buf, counters[i]->ident, "", MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_BEGIN + i, 0);
}
break;
case MENU_SETTINGS_PERFORMANCE_COUNTERS_FRONTEND:
@ -531,52 +531,52 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
for (i = 0; i < num; i++)
if (counters[i] && counters[i]->ident)
file_list_push(menu->selection_buf, counters[i]->ident, MENU_SETTINGS_PERF_COUNTERS_BEGIN + i, 0);
file_list_push(menu->selection_buf, counters[i]->ident, "", MENU_SETTINGS_PERF_COUNTERS_BEGIN + i, 0);
}
break;
case MENU_SETTINGS:
file_list_clear(menu->selection_buf);
#if defined(HAVE_DYNAMIC) || defined(HAVE_LIBRETRO_MANAGEMENT)
file_list_push(menu->selection_buf, "Core", MENU_SETTINGS_CORE, 0);
file_list_push(menu->selection_buf, "Core", "", MENU_SETTINGS_CORE, 0);
#endif
if (g_extern.history)
file_list_push(menu->selection_buf, "Load Content (History)", MENU_SETTINGS_OPEN_HISTORY, 0);
file_list_push(menu->selection_buf, "Load Content (History)", "", MENU_SETTINGS_OPEN_HISTORY, 0);
if (menu->core_info && core_info_list_num_info_files(menu->core_info))
file_list_push(menu->selection_buf, "Load Content (Detect Core)", MENU_SETTINGS_OPEN_FILEBROWSER_DEFERRED_CORE, 0);
file_list_push(menu->selection_buf, "Load Content (Detect Core)", "", MENU_SETTINGS_OPEN_FILEBROWSER_DEFERRED_CORE, 0);
if (menu->info.library_name || g_extern.system.info.library_name)
{
char load_game_core_msg[64];
snprintf(load_game_core_msg, sizeof(load_game_core_msg), "Load Content (%s)",
menu->info.library_name ? menu->info.library_name : g_extern.system.info.library_name);
file_list_push(menu->selection_buf, load_game_core_msg, MENU_SETTINGS_OPEN_FILEBROWSER, 0);
file_list_push(menu->selection_buf, load_game_core_msg, "", MENU_SETTINGS_OPEN_FILEBROWSER, 0);
}
file_list_push(menu->selection_buf, "Core Options", MENU_SETTINGS_CORE_OPTIONS, 0);
file_list_push(menu->selection_buf, "Core Information", MENU_SETTINGS_CORE_INFO, 0);
file_list_push(menu->selection_buf, "Settings", MENU_SETTINGS_OPTIONS, 0);
file_list_push(menu->selection_buf, "Core Options", "", MENU_SETTINGS_CORE_OPTIONS, 0);
file_list_push(menu->selection_buf, "Core Information", "", MENU_SETTINGS_CORE_INFO, 0);
file_list_push(menu->selection_buf, "Settings", "", MENU_SETTINGS_OPTIONS, 0);
if (g_extern.perfcnt_enable && (current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "perfcnt_enable")))
file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_PERFORMANCE_COUNTERS, 0);
file_list_push(menu->selection_buf, current_setting->short_description, "", MENU_SETTINGS_PERFORMANCE_COUNTERS, 0);
if (g_extern.main_is_init && !g_extern.libretro_dummy)
{
file_list_push(menu->selection_buf, "Save State", MENU_SETTINGS_SAVESTATE_SAVE, 0);
file_list_push(menu->selection_buf, "Load State", MENU_SETTINGS_SAVESTATE_LOAD, 0);
file_list_push(menu->selection_buf, "Take Screenshot", MENU_SETTINGS_SCREENSHOT, 0);
file_list_push(menu->selection_buf, "Resume Content", MENU_SETTINGS_RESUME_GAME, 0);
file_list_push(menu->selection_buf, "Restart Content", MENU_SETTINGS_RESTART_GAME, 0);
file_list_push(menu->selection_buf, "Save State", "", MENU_SETTINGS_SAVESTATE_SAVE, 0);
file_list_push(menu->selection_buf, "Load State", "", MENU_SETTINGS_SAVESTATE_LOAD, 0);
file_list_push(menu->selection_buf, "Take Screenshot", "", MENU_SETTINGS_SCREENSHOT, 0);
file_list_push(menu->selection_buf, "Resume Content", "", MENU_SETTINGS_RESUME_GAME, 0);
file_list_push(menu->selection_buf, "Restart Content", "", MENU_SETTINGS_RESTART_GAME, 0);
}
#ifndef HAVE_DYNAMIC
file_list_push(menu->selection_buf, "Restart RetroArch", MENU_SETTINGS_RESTART_EMULATOR, 0);
file_list_push(menu->selection_buf, "Restart RetroArch", "", MENU_SETTINGS_RESTART_EMULATOR, 0);
#endif
file_list_push(menu->selection_buf, "RetroArch Config", MENU_SETTINGS_CONFIG, 0);
file_list_push(menu->selection_buf, "Save New Config", MENU_SETTINGS_SAVE_CONFIG, 0);
file_list_push(menu->selection_buf, "Help", MENU_START_SCREEN, 0);
file_list_push(menu->selection_buf, "Quit RetroArch", MENU_SETTINGS_QUIT_RARCH, 0);
file_list_push(menu->selection_buf, "RetroArch Config", "", MENU_SETTINGS_CONFIG, 0);
file_list_push(menu->selection_buf, "Save New Config", "", MENU_SETTINGS_SAVE_CONFIG, 0);
file_list_push(menu->selection_buf, "Help", "", MENU_START_SCREEN, 0);
file_list_push(menu->selection_buf, "Quit RetroArch", "", MENU_SETTINGS_QUIT_RARCH, 0);
break;
}
@ -1469,7 +1469,7 @@ static void menu_common_setting_push_current_menu(file_list_t *list, const char
switch (action)
{
case MENU_ACTION_OK:
file_list_push(list, path, type, directory_ptr);
file_list_push(list, path, "", type, directory_ptr);
menu_clear_navigation(driver.menu);
driver.menu->need_refresh = true;
break;
@ -1530,7 +1530,7 @@ static int menu_settings_iterate(unsigned action)
{
const char *path = NULL;
file_list_get_at_offset(driver.menu->selection_buf, driver.menu->selection_ptr, &path, &driver.menu->info_selection);
file_list_push(driver.menu->menu_stack, "", MENU_INFO_SCREEN, driver.menu->selection_ptr);
file_list_push(driver.menu->menu_stack, "", "", MENU_INFO_SCREEN, driver.menu->selection_ptr);
}
break;
case MENU_ACTION_LEFT:
@ -1553,7 +1553,7 @@ static int menu_settings_iterate(unsigned action)
}
else if (type == MENU_SETTINGS_CUSTOM_VIEWPORT && action == MENU_ACTION_OK)
{
file_list_push(driver.menu->menu_stack, "", type, driver.menu->selection_ptr);
file_list_push(driver.menu->menu_stack, "", "", type, driver.menu->selection_ptr);
// Start with something sane.
rarch_viewport_t *custom = &g_extern.console.screen.viewports.custom_vp;
@ -1641,7 +1641,7 @@ static int menu_settings_iterate(unsigned action)
if (driver.menu->push_start_screen)
{
driver.menu->push_start_screen = false;
file_list_push(driver.menu->menu_stack, "", MENU_START_SCREEN, 0);
file_list_push(driver.menu->menu_stack, "", "", MENU_START_SCREEN, 0);
}
return 0;
@ -1727,7 +1727,7 @@ static int menu_viewport_iterate(unsigned action)
file_list_pop(driver.menu->menu_stack, &driver.menu->selection_ptr);
if (menu_type == MENU_SETTINGS_CUSTOM_VIEWPORT_2)
{
file_list_push(driver.menu->menu_stack, "",
file_list_push(driver.menu->menu_stack, "", "",
MENU_SETTINGS_CUSTOM_VIEWPORT,
driver.menu->selection_ptr);
}
@ -1738,7 +1738,7 @@ static int menu_viewport_iterate(unsigned action)
if (menu_type == MENU_SETTINGS_CUSTOM_VIEWPORT
&& !g_settings.video.scale_integer)
{
file_list_push(driver.menu->menu_stack, "",
file_list_push(driver.menu->menu_stack, "", "",
MENU_SETTINGS_CUSTOM_VIEWPORT_2,
driver.menu->selection_ptr);
}
@ -1866,7 +1866,7 @@ static void menu_parse_and_resolve(unsigned menu_type)
else
strlcpy(fill_buf, core_name, sizeof(fill_buf));
file_list_push(driver.menu->selection_buf, fill_buf, MENU_FILE_PLAIN, 0);
file_list_push(driver.menu->selection_buf, fill_buf, "", MENU_FILE_PLAIN, 0);
}
break;
case MENU_SETTINGS_DEFERRED_CORE:
@ -1880,19 +1880,19 @@ static void menu_parse_and_resolve(unsigned menu_type)
{
#if defined(GEKKO)
#ifdef HW_RVL
file_list_push(driver.menu->selection_buf, "sd:/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "usb:/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "sd:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "usb:/", "", menu_type, 0);
#endif
file_list_push(driver.menu->selection_buf, "carda:/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "cardb:/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "carda:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "cardb:/", "", menu_type, 0);
#elif defined(_XBOX1)
file_list_push(driver.menu->selection_buf, "C:", menu_type, 0);
file_list_push(driver.menu->selection_buf, "D:", menu_type, 0);
file_list_push(driver.menu->selection_buf, "E:", menu_type, 0);
file_list_push(driver.menu->selection_buf, "F:", menu_type, 0);
file_list_push(driver.menu->selection_buf, "G:", menu_type, 0);
file_list_push(driver.menu->selection_buf, "C:", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "D:", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "E:", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "F:", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "G:", "", menu_type, 0);
#elif defined(_XBOX360)
file_list_push(driver.menu->selection_buf, "game:", menu_type, 0);
file_list_push(driver.menu->selection_buf, "game:", "", menu_type, 0);
#elif defined(_WIN32)
unsigned drives = GetLogicalDrives();
char drive[] = " :\\";
@ -1900,30 +1900,30 @@ static void menu_parse_and_resolve(unsigned menu_type)
{
drive[0] = 'A' + i;
if (drives & (1 << i))
file_list_push(driver.menu->selection_buf, drive, menu_type, 0);
file_list_push(driver.menu->selection_buf, drive, "", menu_type, 0);
}
#elif defined(__CELLOS_LV2__)
file_list_push(driver.menu->selection_buf, "/app_home/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_hdd0/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_hdd1/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/host_root/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb000/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb001/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb002/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb003/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb004/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb005/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb006/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/app_home/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_hdd0/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_hdd1/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/host_root/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb000/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb001/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb002/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb003/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb004/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb005/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/dev_usb006/", "", menu_type, 0);
#elif defined(PSP)
file_list_push(driver.menu->selection_buf, "ms0:/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "ef0:/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "host0:/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "ms0:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "ef0:/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "host0:/", "", menu_type, 0);
#elif defined(IOS)
file_list_push(driver.menu->selection_buf, "/var/mobile/", menu_type, 0);
file_list_push(driver.menu->selection_buf, g_defaults.core_dir, menu_type, 0);
file_list_push(driver.menu->selection_buf, "/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/var/mobile/", "", menu_type, 0);
file_list_push(driver.menu->selection_buf, g_defaults.core_dir, "", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/", "", menu_type, 0);
#else
file_list_push(driver.menu->selection_buf, "/", menu_type, 0);
file_list_push(driver.menu->selection_buf, "/", "", menu_type, 0);
#endif
return;
}
@ -1977,7 +1977,7 @@ static void menu_parse_and_resolve(unsigned menu_type)
dir_list_sort(list, true);
if (menu_common_type_is(menu_type) == MENU_FILE_DIRECTORY)
file_list_push(driver.menu->selection_buf, "<Use this directory>", MENU_FILE_USE_DIRECTORY, 0);
file_list_push(driver.menu->selection_buf, "<Use this directory>", "", MENU_FILE_USE_DIRECTORY, 0);
list_size = list->size;
for (i = 0; i < list_size; i++)
@ -1999,7 +1999,7 @@ static void menu_parse_and_resolve(unsigned menu_type)
// Push menu_type further down in the chain.
// Needed for shader manager currently.
file_list_push(driver.menu->selection_buf, path,
file_list_push(driver.menu->selection_buf, path, "",
is_dir ? menu_type : MENU_FILE_PLAIN, 0);
}
@ -2041,7 +2041,7 @@ static void menu_parse_and_resolve(unsigned menu_type)
core_info_list_get_supported_cores(driver.menu->core_info, driver.menu->deferred_path, &info, &list_size);
for (i = 0; i < list_size; i++)
{
file_list_push(driver.menu->selection_buf, info[i].path, MENU_FILE_PLAIN, 0);
file_list_push(driver.menu->selection_buf, info[i].path, "", MENU_FILE_PLAIN, 0);
file_list_set_alt_at_offset(driver.menu->selection_buf, i, info[i].display_name);
}
file_list_sort_on_alt(driver.menu->selection_buf);
@ -3443,7 +3443,7 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
driver.menu->binds.last = setting;
driver.menu->binds.target = bind;
driver.menu->binds.player = port;
file_list_push(driver.menu->menu_stack, "",
file_list_push(driver.menu->menu_stack, "", "",
driver.menu->bind_mode_keyboard ? MENU_SETTINGS_CUSTOM_BIND_KEYBOARD : MENU_SETTINGS_CUSTOM_BIND, driver.menu->selection_ptr);
if (driver.menu->bind_mode_keyboard)
@ -3478,7 +3478,7 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
{
case MENU_START_SCREEN:
if (action == MENU_ACTION_OK)
file_list_push(driver.menu->menu_stack, "", MENU_START_SCREEN, 0);
file_list_push(driver.menu->menu_stack, "", "", MENU_START_SCREEN, 0);
break;
case MENU_SETTINGS_REWIND_ENABLE:
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "rewind_enable")))
@ -3739,7 +3739,7 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
driver.menu_data_own = true;
rarch_main_command(RARCH_CMD_REINIT);
#elif defined(HAVE_DYLIB)
file_list_push(driver.menu->menu_stack, g_settings.video.filter_dir, setting, driver.menu->selection_ptr);
file_list_push(driver.menu->menu_stack, g_settings.video.filter_dir, "", setting, driver.menu->selection_ptr);
menu_clear_navigation(driver.menu);
#endif
driver.menu->need_refresh = true;
@ -3933,13 +3933,13 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
driver.menu->binds.last = MENU_SETTINGS_BIND_LAST;
if (driver.menu->bind_mode_keyboard)
{
file_list_push(driver.menu->menu_stack, "", MENU_SETTINGS_CUSTOM_BIND_KEYBOARD, driver.menu->selection_ptr);
file_list_push(driver.menu->menu_stack, "", "", MENU_SETTINGS_CUSTOM_BIND_KEYBOARD, driver.menu->selection_ptr);
driver.menu->binds.timeout_end = rarch_get_time_usec() + MENU_KEYBOARD_BIND_TIMEOUT_SECONDS * 1000000;
input_keyboard_wait_keys(driver.menu, menu_custom_bind_keyboard_cb);
}
else
{
file_list_push(driver.menu->menu_stack, "", MENU_SETTINGS_CUSTOM_BIND, driver.menu->selection_ptr);
file_list_push(driver.menu->menu_stack, "", "", MENU_SETTINGS_CUSTOM_BIND, driver.menu->selection_ptr);
menu_poll_bind_get_rested_axes(&driver.menu->binds);
menu_poll_bind_state(&driver.menu->binds);
}

View File

@ -247,7 +247,7 @@ void *menu_init(const void *data)
#ifdef HAVE_SHADER_MANAGER
menu->shader = (struct gfx_shader*)calloc(1, sizeof(struct gfx_shader));
#endif
file_list_push(menu->menu_stack, "", MENU_SETTINGS, 0);
file_list_push(menu->menu_stack, "", "", MENU_SETTINGS, 0);
menu_clear_navigation(menu);
menu->push_start_screen = g_settings.menu_show_start_screen;
g_settings.menu_show_start_screen = false;