mirror of
https://github.com/libretro/RetroArch
synced 2025-01-30 03:32:46 +00:00
(Menu) Combine get_description functions
This commit is contained in:
parent
b02ce0ba62
commit
3dcb74ddbb
@ -54,6 +54,8 @@ static void *get_last_setting(const file_list_t *list, int index,
|
||||
static int menu_info_screen_iterate(unsigned action)
|
||||
{
|
||||
char msg[PATH_MAX];
|
||||
char needle[PATH_MAX];
|
||||
unsigned info_type = 0;
|
||||
rarch_setting_t *current_setting = NULL;
|
||||
rarch_setting_t *setting_data = (rarch_setting_t *)setting_data_get_list();
|
||||
|
||||
@ -69,225 +71,224 @@ static int menu_info_screen_iterate(unsigned action)
|
||||
setting_data_get_list());
|
||||
|
||||
if (current_setting)
|
||||
setting_data_get_description(current_setting, msg, sizeof(msg));
|
||||
else
|
||||
{
|
||||
current_setting = (rarch_setting_t*)get_last_setting(
|
||||
strlcpy(needle, current_setting->name, sizeof(needle));
|
||||
else if ((current_setting = (rarch_setting_t*)get_last_setting(
|
||||
driver.menu->selection_buf,
|
||||
driver.menu->selection_ptr,
|
||||
setting_data_get_mainmenu(true));
|
||||
|
||||
if (current_setting)
|
||||
setting_data_get_description(current_setting, msg, sizeof(msg));
|
||||
else
|
||||
{
|
||||
setting_data_get_mainmenu(true))))
|
||||
{
|
||||
strlcpy(needle, current_setting->name, sizeof(needle));
|
||||
}
|
||||
else
|
||||
{
|
||||
const char *label = NULL;
|
||||
unsigned info_type;
|
||||
file_list_get_at_offset(driver.menu->selection_buf,
|
||||
driver.menu->selection_ptr, NULL, &label,
|
||||
&info_type);
|
||||
|
||||
if (menu_entries_get_description(label, msg, sizeof(msg)) == -1)
|
||||
{
|
||||
switch (info_type)
|
||||
{
|
||||
case MENU_SETTINGS_BIND_DEVICE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Input Device. \n"
|
||||
" \n"
|
||||
"Picks which gamepad to use for player N. \n"
|
||||
"The name of the pad is available."
|
||||
);
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_DEVICE_TYPE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Input Device Type. \n"
|
||||
" \n"
|
||||
"Picks which device type to use. This is \n"
|
||||
"relevant for the libretro core itself."
|
||||
);
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_LEFT_X_PLUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_LEFT_X_MINUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_LEFT_Y_PLUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_LEFT_Y_MINUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_RIGHT_X_PLUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_RIGHT_X_MINUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_RIGHT_Y_PLUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_RIGHT_Y_MINUS:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Axis for analog stick (DualShock-esque).\n"
|
||||
" \n"
|
||||
"Bound as usual, however, if a real analog \n"
|
||||
"axis is bound, it can be read as a true analog.\n"
|
||||
" \n"
|
||||
"Positive X axis is right. \n"
|
||||
"Positive Y axis is down.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_SHADER_NEXT:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Applies next shader in directory.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_SHADER_PREV:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Applies previous shader in directory.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_LOAD_STATE_KEY:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Loads state.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_SAVE_STATE_KEY:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Saves state.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_STATE_SLOT_PLUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_STATE_SLOT_MINUS:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- State slots.\n"
|
||||
" \n"
|
||||
" With slot set to 0, save state name is *.state \n"
|
||||
" (or whatever defined on commandline).\n"
|
||||
"When slot is != 0, path will be (path)(d), \n"
|
||||
"where (d) is slot number.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_TURBO_ENABLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Turbo enable.\n"
|
||||
" \n"
|
||||
"Holding the turbo while pressing another \n"
|
||||
"button will let the button enter a turbo \n"
|
||||
"mode where the button state is modulated \n"
|
||||
"with a periodic signal. \n"
|
||||
" \n"
|
||||
"The modulation stops when the button \n"
|
||||
"itself (not turbo button) is released.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_FAST_FORWARD_HOLD_KEY:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Hold for fast-forward. Releasing button \n"
|
||||
"disables fast-forward.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_QUIT_KEY:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Key to exit RetroArch cleanly."
|
||||
if (label)
|
||||
strlcpy(needle, label, sizeof(needle));
|
||||
}
|
||||
|
||||
if (needle[0] == '\0' || setting_data_get_description(needle, msg, sizeof(msg)) == -1)
|
||||
{
|
||||
switch (info_type)
|
||||
{
|
||||
case MENU_SETTINGS_BIND_DEVICE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Input Device. \n"
|
||||
" \n"
|
||||
"Picks which gamepad to use for player N. \n"
|
||||
"The name of the pad is available."
|
||||
);
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_DEVICE_TYPE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Input Device Type. \n"
|
||||
" \n"
|
||||
"Picks which device type to use. This is \n"
|
||||
"relevant for the libretro core itself."
|
||||
);
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_LEFT_X_PLUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_LEFT_X_MINUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_LEFT_Y_PLUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_LEFT_Y_MINUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_RIGHT_X_PLUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_RIGHT_X_MINUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_RIGHT_Y_PLUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ANALOG_RIGHT_Y_MINUS:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Axis for analog stick (DualShock-esque).\n"
|
||||
" \n"
|
||||
"Bound as usual, however, if a real analog \n"
|
||||
"axis is bound, it can be read as a true analog.\n"
|
||||
" \n"
|
||||
"Positive X axis is right. \n"
|
||||
"Positive Y axis is down.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_SHADER_NEXT:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Applies next shader in directory.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_SHADER_PREV:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Applies previous shader in directory.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_LOAD_STATE_KEY:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Loads state.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_SAVE_STATE_KEY:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Saves state.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_STATE_SLOT_PLUS:
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_STATE_SLOT_MINUS:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- State slots.\n"
|
||||
" \n"
|
||||
" With slot set to 0, save state name is *.state \n"
|
||||
" (or whatever defined on commandline).\n"
|
||||
"When slot is != 0, path will be (path)(d), \n"
|
||||
"where (d) is slot number.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_TURBO_ENABLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Turbo enable.\n"
|
||||
" \n"
|
||||
"Holding the turbo while pressing another \n"
|
||||
"button will let the button enter a turbo \n"
|
||||
"mode where the button state is modulated \n"
|
||||
"with a periodic signal. \n"
|
||||
" \n"
|
||||
"The modulation stops when the button \n"
|
||||
"itself (not turbo button) is released.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_FAST_FORWARD_HOLD_KEY:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Hold for fast-forward. Releasing button \n"
|
||||
"disables fast-forward.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_QUIT_KEY:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Key to exit RetroArch cleanly."
|
||||
#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE)
|
||||
"\nKilling it in any hard way (SIGKILL, \n"
|
||||
"etc) will terminate without saving\n"
|
||||
"RAM, etc. On Unix-likes,\n"
|
||||
"SIGINT/SIGTERM allows\n"
|
||||
"a clean deinitialization."
|
||||
"\nKilling it in any hard way (SIGKILL, \n"
|
||||
"etc) will terminate without saving\n"
|
||||
"RAM, etc. On Unix-likes,\n"
|
||||
"SIGINT/SIGTERM allows\n"
|
||||
"a clean deinitialization."
|
||||
#endif
|
||||
);
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_REWIND:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Hold button down to rewind.\n"
|
||||
" \n"
|
||||
"Rewind must be enabled.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_MOVIE_RECORD_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggle between recording and not.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_PAUSE_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggle between paused and non-paused state.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_FRAMEADVANCE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Frame advance when content is paused.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_RESET:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Reset the content.\n");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_CHEAT_INDEX_PLUS:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Increment cheat index.\n");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_CHEAT_INDEX_MINUS:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Decrement cheat index.\n");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_CHEAT_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggle cheat index.\n");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_SCREENSHOT:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Take screenshot.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_MUTE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Mute/unmute audio.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_NETPLAY_FLIP:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Netplay flip players.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_SLOWMOTION:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Hold for slowmotion.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ENABLE_HOTKEY:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Enable other hotkeys.\n"
|
||||
" \n"
|
||||
" If this hotkey is bound to either keyboard, \n"
|
||||
"joybutton or joyaxis, all other hotkeys will \n"
|
||||
"be disabled unless this hotkey is also held \n"
|
||||
"at the same time. \n"
|
||||
" \n"
|
||||
"This is useful for RETRO_KEYBOARD centric \n"
|
||||
"implementations which query a large area of \n"
|
||||
"the keyboard, where it is not desirable that \n"
|
||||
"hotkeys get in the way.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_VOLUME_UP:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Increases audio volume.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_VOLUME_DOWN:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Decreases audio volume.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_OVERLAY_NEXT:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggles to next overlay.\n"
|
||||
" \n"
|
||||
"Wraps around.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_DISK_EJECT_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggles eject for disks.\n"
|
||||
" \n"
|
||||
"Used for multiple-disk content.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_DISK_NEXT:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Cycles through disk images. Use after \n"
|
||||
"ejecting. \n"
|
||||
" \n"
|
||||
" Complete by toggling eject again.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_GRAB_MOUSE_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggles mouse grab.\n"
|
||||
" \n"
|
||||
"When mouse is grabbed, RetroArch hides the \n"
|
||||
"mouse, and keeps the mouse pointer inside \n"
|
||||
"the window to allow relative mouse input to \n"
|
||||
"work better.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_MENU_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggles menu.");
|
||||
break;
|
||||
default:
|
||||
snprintf(msg, sizeof(msg),
|
||||
"-- No info on this item available. --\n");
|
||||
}
|
||||
}
|
||||
);
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_REWIND:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Hold button down to rewind.\n"
|
||||
" \n"
|
||||
"Rewind must be enabled.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_MOVIE_RECORD_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggle between recording and not.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_PAUSE_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggle between paused and non-paused state.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_FRAMEADVANCE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Frame advance when content is paused.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_RESET:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Reset the content.\n");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_CHEAT_INDEX_PLUS:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Increment cheat index.\n");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_CHEAT_INDEX_MINUS:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Decrement cheat index.\n");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_CHEAT_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggle cheat index.\n");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_SCREENSHOT:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Take screenshot.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_MUTE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Mute/unmute audio.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_NETPLAY_FLIP:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Netplay flip players.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_SLOWMOTION:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Hold for slowmotion.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_ENABLE_HOTKEY:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Enable other hotkeys.\n"
|
||||
" \n"
|
||||
" If this hotkey is bound to either keyboard, \n"
|
||||
"joybutton or joyaxis, all other hotkeys will \n"
|
||||
"be disabled unless this hotkey is also held \n"
|
||||
"at the same time. \n"
|
||||
" \n"
|
||||
"This is useful for RETRO_KEYBOARD centric \n"
|
||||
"implementations which query a large area of \n"
|
||||
"the keyboard, where it is not desirable that \n"
|
||||
"hotkeys get in the way.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_VOLUME_UP:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Increases audio volume.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_VOLUME_DOWN:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Decreases audio volume.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_OVERLAY_NEXT:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggles to next overlay.\n"
|
||||
" \n"
|
||||
"Wraps around.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_DISK_EJECT_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggles eject for disks.\n"
|
||||
" \n"
|
||||
"Used for multiple-disk content.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_DISK_NEXT:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Cycles through disk images. Use after \n"
|
||||
"ejecting. \n"
|
||||
" \n"
|
||||
" Complete by toggling eject again.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_GRAB_MOUSE_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggles mouse grab.\n"
|
||||
" \n"
|
||||
"When mouse is grabbed, RetroArch hides the \n"
|
||||
"mouse, and keeps the mouse pointer inside \n"
|
||||
"the window to allow relative mouse input to \n"
|
||||
"work better.");
|
||||
break;
|
||||
case MENU_SETTINGS_BIND_BEGIN + RARCH_MENU_TOGGLE:
|
||||
snprintf(msg, sizeof(msg),
|
||||
" -- Toggles menu.");
|
||||
break;
|
||||
default:
|
||||
snprintf(msg, sizeof(msg),
|
||||
"-- No info on this item available. --\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -854,141 +854,3 @@ void menu_entries_push(file_list_t *list,
|
||||
menu_clear_navigation(driver.menu);
|
||||
driver.menu->need_refresh = true;
|
||||
}
|
||||
|
||||
int menu_entries_get_description(const char *label,
|
||||
char *msg, size_t sizeof_msg)
|
||||
{
|
||||
if (!strcmp(label, "shader_apply_changes"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Apply Shader Changes. \n"
|
||||
" \n"
|
||||
"After changing shader settings, use this to \n"
|
||||
"apply changes. \n"
|
||||
" \n"
|
||||
"Changing shader settings is a somewhat \n"
|
||||
"expensive operation so it has to be \n"
|
||||
"done explicitly. \n"
|
||||
" \n"
|
||||
"When you apply shaders, the menu shader \n"
|
||||
"settings are saved to a temporary file (either \n"
|
||||
"menu.cgp or menu.glslp) and loaded. The file \n"
|
||||
"persists after RetroArch exits. The file is \n"
|
||||
"saved to Shader Directory."
|
||||
);
|
||||
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_preset"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Load Shader Preset. \n"
|
||||
" \n"
|
||||
" Load a "
|
||||
#ifdef HAVE_CG
|
||||
"Cg"
|
||||
#endif
|
||||
#ifdef HAVE_GLSL
|
||||
#ifdef HAVE_CG
|
||||
"/"
|
||||
#endif
|
||||
"GLSL"
|
||||
#endif
|
||||
#ifdef HAVE_HLSL
|
||||
#if defined(HAVE_CG) || defined(HAVE_HLSL)
|
||||
"/"
|
||||
#endif
|
||||
"HLSL"
|
||||
#endif
|
||||
" preset directly. \n"
|
||||
"The menu shader menu is updated accordingly. \n"
|
||||
" \n"
|
||||
"If the CGP uses scaling methods which are not \n"
|
||||
"simple, (i.e. source scaling, same scaling \n"
|
||||
"factor for X/Y), the scaling factor displayed \n"
|
||||
"in the menu might not be correct."
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_num_passes"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Shader Passes. \n"
|
||||
" \n"
|
||||
"RetroArch allows you to mix and match various \n"
|
||||
"shaders with arbitrary shader passes, with \n"
|
||||
"custom hardware filters and scale factors. \n"
|
||||
" \n"
|
||||
"This option specifies the number of shader \n"
|
||||
"passes to use. If you set this to 0, and use \n"
|
||||
"Apply Shader Changes, you use a 'blank' shader. \n"
|
||||
" \n"
|
||||
"The Default Filter option will affect the \n"
|
||||
"stretching filter.");
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_parameters"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
"-- Shader Parameters. \n"
|
||||
" \n"
|
||||
"Modifies current shader directly. Will not be \n"
|
||||
"saved to CGP/GLSLP preset file.");
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_preset_parameters"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
"-- Shader Preset Parameters. \n"
|
||||
" \n"
|
||||
"Modifies shader preset currently in menu."
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_pass"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Path to shader. \n"
|
||||
" \n"
|
||||
"All shaders must be of the same \n"
|
||||
"type (i.e. CG, GLSL or HLSL). \n"
|
||||
" \n"
|
||||
"Set Shader Directory to set where \n"
|
||||
"the browser starts to look for \n"
|
||||
"shaders."
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_filter_pass"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Hardware filter for this pass. \n"
|
||||
" \n"
|
||||
"If 'Don't Care' is set, 'Default \n"
|
||||
"Filter' will be used."
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_scale_pass"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Scale for this pass. \n"
|
||||
" \n"
|
||||
"The scale factor accumulates, i.e. 2x \n"
|
||||
"for first pass and 2x for second pass \n"
|
||||
"will give you a 4x total scale. \n"
|
||||
" \n"
|
||||
"If there is a scale factor for last \n"
|
||||
"pass, the result is stretched to \n"
|
||||
"screen with the filter specified in \n"
|
||||
"'Default Filter'. \n"
|
||||
" \n"
|
||||
"If 'Don't Care' is set, either 1x \n"
|
||||
"scale or stretch to fullscreen will \n"
|
||||
"be used depending if it's not the last \n"
|
||||
"pass or not."
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
@ -38,7 +38,4 @@ void menu_entries_pop(file_list_t *list);
|
||||
void menu_flush_stack_type(file_list_t *list, unsigned final_type);
|
||||
void menu_flush_stack_label(file_list_t *list, const char *needle);
|
||||
|
||||
int menu_entries_get_description(const char *label, char *msg,
|
||||
size_t sizeof_msg);
|
||||
|
||||
#endif
|
||||
|
446
settings_data.c
446
settings_data.c
@ -612,15 +612,10 @@ rarch_setting_t setting_data_bind_setting(const char* name,
|
||||
return result;
|
||||
}
|
||||
|
||||
void setting_data_get_description(const void *data, char *msg,
|
||||
int setting_data_get_description(const char *label, char *msg,
|
||||
size_t sizeof_msg)
|
||||
{
|
||||
const rarch_setting_t *setting = (const rarch_setting_t*)data;
|
||||
|
||||
if (!setting)
|
||||
return;
|
||||
|
||||
if (!strcmp(setting->name, "input_driver"))
|
||||
if (!strcmp(label, "input_driver"))
|
||||
{
|
||||
if (!strcmp(g_settings.input.driver, "udev"))
|
||||
snprintf(msg, sizeof_msg,
|
||||
@ -658,8 +653,11 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
" \n"
|
||||
"Depending on video driver, it might \n"
|
||||
"force a different input driver.");
|
||||
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(setting->name, "load_content"))
|
||||
else if (!strcmp(label, "load_content"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Load Content. \n"
|
||||
"Browse for content. \n"
|
||||
@ -678,7 +676,10 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"in 'Core', and use that core when \n"
|
||||
"content is loaded."
|
||||
);
|
||||
else if (!strcmp(setting->name, "core_list"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "core_list"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Core Selection. \n"
|
||||
" \n"
|
||||
@ -691,7 +692,10 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"will use that as top folder. If Core \n"
|
||||
"Directory is a full path, it will start \n"
|
||||
"in the folder where the file is.");
|
||||
else if (!strcmp(setting->name, "history_list"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "history_list"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Loading content from history. \n"
|
||||
" \n"
|
||||
@ -704,7 +708,9 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"will not be saved or loaded, and will not exist \n"
|
||||
"in the main menu."
|
||||
);
|
||||
else if (!strcmp(setting->name, "audio_resampler_driver"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "audio_resampler_driver"))
|
||||
{
|
||||
if (!strcmp(g_settings.audio.resampler, "sinc"))
|
||||
snprintf(msg, sizeof_msg,
|
||||
@ -712,8 +718,9 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
else if (!strcmp(g_settings.audio.resampler, "CC"))
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Convoluted Cosine implementation.");
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(setting->name, "video_driver"))
|
||||
else if (!strcmp(label, "video_driver"))
|
||||
{
|
||||
if (!strcmp(g_settings.video.driver, "gl"))
|
||||
snprintf(msg, sizeof_msg,
|
||||
@ -766,24 +773,35 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
else
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Current Video driver.");
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(setting->name, "audio_dsp_plugin"))
|
||||
else if (!strcmp(label, "audio_dsp_plugin"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Audio DSP plugin.\n"
|
||||
" Processes audio before it's sent to \n"
|
||||
"the driver."
|
||||
);
|
||||
else if (!strcmp(setting->name, "libretro_dir_path"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "libretro_dir_path"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Core Directory. \n"
|
||||
" \n"
|
||||
"A directory for where to search for \n"
|
||||
"libretro core implementations.");
|
||||
else if (!strcmp(setting->name, "video_disable_composition"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_disable_composition"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
"-- Forcibly disable composition.\n"
|
||||
"Only valid on Windows Vista/7 for now.");
|
||||
else if (!strcmp(setting->name, "libretro_log_level"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "libretro_log_level"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
"-- Sets log level for libretro cores \n"
|
||||
"(GET_LOG_INTERFACE). \n"
|
||||
@ -800,15 +818,24 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
" WARN = 2\n"
|
||||
" ERROR = 3"
|
||||
);
|
||||
else if (!strcmp(setting->name, "log_verbosity"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "log_verbosity"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
"-- Enable or disable verbosity level \n"
|
||||
"of frontend.");
|
||||
else if (!strcmp(setting->name, "perfcnt_enable"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "perfcnt_enable"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
"-- Enable or disable frontend \n"
|
||||
"performance counters.");
|
||||
else if (!strcmp(setting->name, "system_directory"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "system_directory"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
"-- System Directory. \n"
|
||||
" \n"
|
||||
@ -816,7 +843,10 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"Implementations can query for this\n"
|
||||
"directory to load BIOSes, \n"
|
||||
"system-specific configs, etc.");
|
||||
else if (!strcmp(setting->name, "rgui_show_start_screen"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "rgui_show_start_screen"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Show startup screen in menu.\n"
|
||||
"Is automatically set to false when seen\n"
|
||||
@ -824,7 +854,10 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
" \n"
|
||||
"This is only updated in config if\n"
|
||||
"'Config Save On Exit' is set to true.\n");
|
||||
else if (!strcmp(setting->name, "config_save_on_exit"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "config_save_on_exit"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Flushes config to disk on exit.\n"
|
||||
"Useful for menu as settings can be\n"
|
||||
@ -845,27 +878,42 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"manually isn't really an option."
|
||||
#endif
|
||||
);
|
||||
else if (!strcmp(setting->name, "core_specific_config"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "core_specific_config"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Load up a specific config file \n"
|
||||
"based on the core being used.\n");
|
||||
else if (!strcmp(setting->name, "video_scale"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_scale"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Fullscreen resolution.\n"
|
||||
" \n"
|
||||
"Resolution of 0 uses the \n"
|
||||
"resolution of the environment.\n");
|
||||
else if (!strcmp(setting->name, "video_vsync"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_vsync"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Video V-Sync.\n");
|
||||
else if (!strcmp(setting->name, "video_hard_sync"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_hard_sync"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Attempts to hard-synchronize \n"
|
||||
"CPU and GPU.\n"
|
||||
" \n"
|
||||
"Can reduce latency at cost of \n"
|
||||
"performance.");
|
||||
else if (!strcmp(setting->name, "video_hard_sync_frames"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_hard_sync_frames"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Sets how many frames CPU can \n"
|
||||
"run ahead of GPU when using 'GPU \n"
|
||||
@ -876,7 +924,10 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
" 0: Syncs to GPU immediately.\n"
|
||||
" 1: Syncs to previous frame.\n"
|
||||
" 2: Etc ...");
|
||||
else if (!strcmp(setting->name, "video_frame_delay"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_frame_delay"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Sets how many milliseconds to delay\n"
|
||||
"after VSync before running the core.\n"
|
||||
@ -885,7 +936,10 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"higher risk of stuttering.\n"
|
||||
" \n"
|
||||
"Maximum is 15.");
|
||||
else if (!strcmp(setting->name, "audio_rate_control_delta"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "audio_rate_control_delta"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Audio rate control.\n"
|
||||
" \n"
|
||||
@ -898,7 +952,10 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
" \n"
|
||||
" Input rate is defined as: \n"
|
||||
" input rate * (1.0 +/- (rate control delta))");
|
||||
else if (!strcmp(setting->name, "video_filter"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_filter"))
|
||||
{
|
||||
#ifdef HAVE_FILTERS_BUILTIN
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- CPU-based video filter.");
|
||||
@ -908,9 +965,15 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
" \n"
|
||||
"Path to a dynamic library.");
|
||||
#endif
|
||||
else if (!strcmp(setting->name, "video_fullscreen"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_fullscreen"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg, " -- Toggles fullscreen.");
|
||||
else if (!strcmp(setting->name, "audio_device"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "audio_device"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Override the default audio device \n"
|
||||
"the audio driver uses.\n"
|
||||
@ -934,26 +997,35 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"server."
|
||||
#endif
|
||||
);
|
||||
else if (!strcmp(setting->name, "video_black_frame_insertion"))
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Inserts a black frame inbetween \n"
|
||||
"frames.\n"
|
||||
" \n"
|
||||
"Useful for 120 Hz monitors who want to \n"
|
||||
"play 60 Hz material with eliminated \n"
|
||||
"ghosting.\n"
|
||||
" \n"
|
||||
"Video refresh rate should still be \n"
|
||||
"configured as if it is a 60 Hz monitor \n"
|
||||
"(divide refresh rate by 2).");
|
||||
else if (!strcmp(setting->name, "video_threaded"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_black_frame_insertion"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Inserts a black frame inbetween \n"
|
||||
"frames.\n"
|
||||
" \n"
|
||||
"Useful for 120 Hz monitors who want to \n"
|
||||
"play 60 Hz material with eliminated \n"
|
||||
"ghosting.\n"
|
||||
" \n"
|
||||
"Video refresh rate should still be \n"
|
||||
"configured as if it is a 60 Hz monitor \n"
|
||||
"(divide refresh rate by 2).");
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_threaded"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Use threaded video driver.\n"
|
||||
" \n"
|
||||
"Using this might improve performance at \n"
|
||||
"possible cost of latency and more video \n"
|
||||
"stuttering.");
|
||||
else if (!strcmp(setting->name, "video_scale_integer"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_scale_integer"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Only scales video in integer \n"
|
||||
"steps.\n"
|
||||
@ -963,14 +1035,20 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
" \n"
|
||||
"If Force Aspect is not set, X/Y will be \n"
|
||||
"integer scaled independently.");
|
||||
else if (!strcmp(setting->name, "video_crop_overscan"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_crop_overscan"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Forces cropping of overscanned \n"
|
||||
"frames.\n"
|
||||
" \n"
|
||||
"Exact behavior of this option is \n"
|
||||
"core-implementation specific.");
|
||||
else if (!strcmp(setting->name, "video_monitor_index"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_monitor_index"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Which monitor to prefer.\n"
|
||||
" \n"
|
||||
@ -978,7 +1056,10 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"is preferred, 1 and up (1 being first \n"
|
||||
"monitor), suggests RetroArch to use that \n"
|
||||
"particular monitor.");
|
||||
else if (!strcmp(setting->name, "video_rotation"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_rotation"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Forces a certain rotation \n"
|
||||
"of the screen.\n"
|
||||
@ -986,20 +1067,29 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"The rotation is added to rotations which\n"
|
||||
"the libretro core sets (see Video Allow\n"
|
||||
"Rotate).");
|
||||
else if (!strcmp(setting->name, "audio_volume"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "audio_volume"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Audio volume, expressed in dB.\n"
|
||||
" \n"
|
||||
" 0 dB is normal volume. No gain will be applied.\n"
|
||||
"Gain can be controlled in runtime with Input\n"
|
||||
"Volume Up / Input Volume Down.");
|
||||
else if (!strcmp(setting->name, "block_sram_overwrite"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "block_sram_overwrite"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Block SRAM from being overwritten \n"
|
||||
"when loading save states.\n"
|
||||
" \n"
|
||||
"Might potentially lead to buggy games.");
|
||||
else if (!strcmp(setting->name, "fastforward_ratio"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "fastforward_ratio"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Fastforward ratio."
|
||||
" \n"
|
||||
@ -1013,15 +1103,24 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"the maximum rate will not be exceeded.\n"
|
||||
"Do not rely on this cap to be perfectly \n"
|
||||
"accurate.");
|
||||
else if (!strcmp(setting->name, "pause_nonactive"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "pause_nonactive"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Pause gameplay when window focus \n"
|
||||
"is lost.");
|
||||
else if (!strcmp(setting->name, "video_gpu_screenshot"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_gpu_screenshot"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Screenshots output of GPU shaded \n"
|
||||
"material if available.");
|
||||
else if (!strcmp(setting->name, "autosave_interval"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "autosave_interval"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Autosaves the non-volatile SRAM \n"
|
||||
"at a regular interval.\n"
|
||||
@ -1031,19 +1130,28 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"seconds. \n"
|
||||
" \n"
|
||||
"A value of 0 disables autosave.");
|
||||
else if (!strcmp(setting->name, "screenshot_directory"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "screenshot_directory"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Screenshot Directory. \n"
|
||||
" \n"
|
||||
"Directory to dump screenshots to."
|
||||
);
|
||||
else if (!strcmp(setting->name, "video_swap_interval"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_swap_interval"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- VSync Swap Interval.\n"
|
||||
" \n"
|
||||
"Uses a custom swap interval for VSync. Set this \n"
|
||||
"to effectively halve monitor refresh rate.");
|
||||
else if (!strcmp(setting->name, "video_refresh_rate_auto"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_refresh_rate_auto"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Refresh Rate Auto.\n"
|
||||
" \n"
|
||||
@ -1062,17 +1170,23 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"large pitch changes. If your monitor does \n"
|
||||
"not run at 60Hz, or something close to it, \n"
|
||||
"disable VSync, and leave this at its default.");
|
||||
else if (!strcmp(setting->name, "savefile_directory"))
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Savefile Directory. \n"
|
||||
" \n"
|
||||
"Save all save files (*.srm) to this \n"
|
||||
"directory. This includes related files like \n"
|
||||
".bsv, .rt, .psrm, etc...\n"
|
||||
" \n"
|
||||
"This will be overridden by explicit command line\n"
|
||||
"options.");
|
||||
else if (!strcmp(setting->name, "savestate_directory"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "savefile_directory"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Savefile Directory. \n"
|
||||
" \n"
|
||||
"Save all save files (*.srm) to this \n"
|
||||
"directory. This includes related files like \n"
|
||||
".bsv, .rt, .psrm, etc...\n"
|
||||
" \n"
|
||||
"This will be overridden by explicit command line\n"
|
||||
"options.");
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "savestate_directory"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Savestate Directory. \n"
|
||||
" \n"
|
||||
@ -1081,25 +1195,37 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
" \n"
|
||||
"This will be overridden by explicit command line\n"
|
||||
"options.");
|
||||
else if (!strcmp(setting->name, "assets_directory"))
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Assets Directory. \n"
|
||||
" \n"
|
||||
" This location is queried by default when \n"
|
||||
"menu interfaces try to look for loadable \n"
|
||||
"assets, etc.");
|
||||
else if (!strcmp(setting->name, "slowmotion_ratio"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "assets_directory"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Assets Directory. \n"
|
||||
" \n"
|
||||
" This location is queried by default when \n"
|
||||
"menu interfaces try to look for loadable \n"
|
||||
"assets, etc.");
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "slowmotion_ratio"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Slowmotion ratio."
|
||||
" \n"
|
||||
"When slowmotion, content will slow\n"
|
||||
"down by factor.");
|
||||
else if (!strcmp(setting->name, "input_axis_threshold"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "input_axis_threshold"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Defines axis threshold.\n"
|
||||
" \n"
|
||||
" Possible values are [0.0, 1.0].");
|
||||
else if (!strcmp(setting->name, "rewind_granularity"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "rewind_granularity"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Rewind granularity.\n"
|
||||
" \n"
|
||||
@ -1107,27 +1233,42 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"frames, you can rewind several frames \n"
|
||||
"at a time, increasing the rewinding \n"
|
||||
"speed.");
|
||||
else if (!strcmp(setting->name, "rewind_enable"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "rewind_enable"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Enable rewinding.\n"
|
||||
" \n"
|
||||
"This will take a performance hit, \n"
|
||||
"so it is disabled by default.");
|
||||
else if (!strcmp(setting->name, "input_autodetect_enable"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "input_autodetect_enable"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Enable input auto-detection.\n"
|
||||
" \n"
|
||||
"Will attempt to auto-configure \n"
|
||||
"joypads, Plug-and-Play style.");
|
||||
else if (!strcmp(setting->name, "camera_allow"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "camera_allow"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Allow or disallow camera access by \n"
|
||||
"cores.");
|
||||
else if (!strcmp(setting->name, "location_allow"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "location_allow"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Allow or disallow location services \n"
|
||||
"access by cores.");
|
||||
else if (!strcmp(setting->name, "savestate_auto_save"))
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "savestate_auto_save"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Automatically saves a savestate at the \n"
|
||||
"end of RetroArch's lifetime.\n"
|
||||
@ -1135,9 +1276,148 @@ void setting_data_get_description(const void *data, char *msg,
|
||||
"RetroArch will automatically load any savestate\n"
|
||||
"with this path on startup if 'Savestate Auto\n"
|
||||
"Load' is set.");
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "shader_apply_changes"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Apply Shader Changes. \n"
|
||||
" \n"
|
||||
"After changing shader settings, use this to \n"
|
||||
"apply changes. \n"
|
||||
" \n"
|
||||
"Changing shader settings is a somewhat \n"
|
||||
"expensive operation so it has to be \n"
|
||||
"done explicitly. \n"
|
||||
" \n"
|
||||
"When you apply shaders, the menu shader \n"
|
||||
"settings are saved to a temporary file (either \n"
|
||||
"menu.cgp or menu.glslp) and loaded. The file \n"
|
||||
"persists after RetroArch exits. The file is \n"
|
||||
"saved to Shader Directory."
|
||||
);
|
||||
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_preset"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Load Shader Preset. \n"
|
||||
" \n"
|
||||
" Load a "
|
||||
#ifdef HAVE_CG
|
||||
"Cg"
|
||||
#endif
|
||||
#ifdef HAVE_GLSL
|
||||
#ifdef HAVE_CG
|
||||
"/"
|
||||
#endif
|
||||
"GLSL"
|
||||
#endif
|
||||
#ifdef HAVE_HLSL
|
||||
#if defined(HAVE_CG) || defined(HAVE_HLSL)
|
||||
"/"
|
||||
#endif
|
||||
"HLSL"
|
||||
#endif
|
||||
" preset directly. \n"
|
||||
"The menu shader menu is updated accordingly. \n"
|
||||
" \n"
|
||||
"If the CGP uses scaling methods which are not \n"
|
||||
"simple, (i.e. source scaling, same scaling \n"
|
||||
"factor for X/Y), the scaling factor displayed \n"
|
||||
"in the menu might not be correct."
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_num_passes"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Shader Passes. \n"
|
||||
" \n"
|
||||
"RetroArch allows you to mix and match various \n"
|
||||
"shaders with arbitrary shader passes, with \n"
|
||||
"custom hardware filters and scale factors. \n"
|
||||
" \n"
|
||||
"This option specifies the number of shader \n"
|
||||
"passes to use. If you set this to 0, and use \n"
|
||||
"Apply Shader Changes, you use a 'blank' shader. \n"
|
||||
" \n"
|
||||
"The Default Filter option will affect the \n"
|
||||
"stretching filter.");
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_parameters"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
"-- Shader Parameters. \n"
|
||||
" \n"
|
||||
"Modifies current shader directly. Will not be \n"
|
||||
"saved to CGP/GLSLP preset file.");
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_preset_parameters"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
"-- Shader Preset Parameters. \n"
|
||||
" \n"
|
||||
"Modifies shader preset currently in menu."
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_pass"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Path to shader. \n"
|
||||
" \n"
|
||||
"All shaders must be of the same \n"
|
||||
"type (i.e. CG, GLSL or HLSL). \n"
|
||||
" \n"
|
||||
"Set Shader Directory to set where \n"
|
||||
"the browser starts to look for \n"
|
||||
"shaders."
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_filter_pass"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Hardware filter for this pass. \n"
|
||||
" \n"
|
||||
"If 'Don't Care' is set, 'Default \n"
|
||||
"Filter' will be used."
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(label, "video_shader_scale_pass"))
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
" -- Scale for this pass. \n"
|
||||
" \n"
|
||||
"The scale factor accumulates, i.e. 2x \n"
|
||||
"for first pass and 2x for second pass \n"
|
||||
"will give you a 4x total scale. \n"
|
||||
" \n"
|
||||
"If there is a scale factor for last \n"
|
||||
"pass, the result is stretched to \n"
|
||||
"screen with the filter specified in \n"
|
||||
"'Default Filter'. \n"
|
||||
" \n"
|
||||
"If 'Don't Care' is set, either 1x \n"
|
||||
"scale or stretch to fullscreen will \n"
|
||||
"be used depending if it's not the last \n"
|
||||
"pass or not."
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
snprintf(msg, sizeof_msg,
|
||||
"-- No info on this item is available. --\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static void general_read_handler(const void *data)
|
||||
|
@ -166,7 +166,7 @@ rarch_setting_t setting_data_bind_setting(const char* name,
|
||||
const struct retro_keybind* default_value, const char *group,
|
||||
const char *subgroup);
|
||||
|
||||
void setting_data_get_description(const void *data, char *msg,
|
||||
int setting_data_get_description(const char *label, char *msg,
|
||||
size_t msg_sizeof);
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
|
Loading…
x
Reference in New Issue
Block a user