mirror of
https://github.com/libretro/RetroArch
synced 2025-03-26 02:37:23 +00:00
Add Run-Ahead Toggle hotkey with notifications
This commit is contained in:
parent
f37d38bcd4
commit
f3aaf24219
@ -196,6 +196,7 @@ enum event_command
|
||||
CMD_EVENT_OSK_TOGGLE,
|
||||
CMD_EVENT_RECORDING_TOGGLE,
|
||||
CMD_EVENT_STREAMING_TOGGLE,
|
||||
CMD_EVENT_RUNAHEAD_TOGGLE,
|
||||
CMD_EVENT_AI_SERVICE_TOGGLE,
|
||||
CMD_EVENT_BSV_RECORDING_TOGGLE,
|
||||
CMD_EVENT_SHADER_NEXT,
|
||||
|
@ -563,6 +563,13 @@ static const struct retro_keybind retro_keybinds_1[] = {
|
||||
RARCH_STREAMING_TOGGLE, NO_BTN, NO_BTN, 0,
|
||||
true
|
||||
},
|
||||
{
|
||||
NULL, NULL,
|
||||
AXIS_NONE, AXIS_NONE, AXIS_NONE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_RUNAHEAD_TOGGLE, RETROK_UNKNOWN,
|
||||
RARCH_RUNAHEAD_TOGGLE, NO_BTN, NO_BTN, 0,
|
||||
true
|
||||
},
|
||||
{
|
||||
NULL, NULL,
|
||||
AXIS_NONE, AXIS_NONE, AXIS_NONE,
|
||||
@ -1110,6 +1117,13 @@ static const struct retro_keybind retro_keybinds_1[] = {
|
||||
RARCH_STREAMING_TOGGLE, NO_BTN, NO_BTN, 0,
|
||||
true
|
||||
},
|
||||
{
|
||||
NULL, NULL,
|
||||
AXIS_NONE, AXIS_NONE, AXIS_NONE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_RUNAHEAD_TOGGLE, RETROK_UNKNOWN,
|
||||
RARCH_RUNAHEAD_TOGGLE, NO_BTN, NO_BTN, 0,
|
||||
true
|
||||
},
|
||||
{
|
||||
NULL, NULL,
|
||||
AXIS_NONE, AXIS_NONE, AXIS_NONE,
|
||||
@ -1667,6 +1681,13 @@ static const struct retro_keybind retro_keybinds_1[] = {
|
||||
RARCH_STREAMING_TOGGLE, NO_BTN, NO_BTN, 0,
|
||||
true
|
||||
},
|
||||
{
|
||||
NULL, NULL,
|
||||
AXIS_NONE, AXIS_NONE, AXIS_NONE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_RUNAHEAD_TOGGLE, RETROK_UNKNOWN,
|
||||
RARCH_RUNAHEAD_TOGGLE, NO_BTN, NO_BTN, 0,
|
||||
true
|
||||
},
|
||||
{
|
||||
NULL, NULL,
|
||||
AXIS_NONE, AXIS_NONE, AXIS_NONE,
|
||||
|
@ -117,6 +117,7 @@ enum
|
||||
|
||||
RARCH_RECORDING_TOGGLE,
|
||||
RARCH_STREAMING_TOGGLE,
|
||||
RARCH_RUNAHEAD_TOGGLE,
|
||||
|
||||
RARCH_AI_SERVICE,
|
||||
|
||||
|
@ -225,6 +225,10 @@ int msg_hash_get_help_us_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
case RARCH_RUNAHEAD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggles Run-Ahead mode on/off.");
|
||||
break;
|
||||
default:
|
||||
if (string_is_empty(s))
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len);
|
||||
|
@ -2555,6 +2555,14 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_INPUT_META_STREAMING_TOGGLE,
|
||||
"Starts/stops streaming of the current session to an online video platform."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_RUNAHEAD_TOGGLE,
|
||||
"Run-Ahead (Toggle)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_INPUT_META_RUNAHEAD_TOGGLE,
|
||||
"Switches Run-Ahead on/off."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_AI_SERVICE,
|
||||
"AI Service"
|
||||
@ -11266,6 +11274,18 @@ MSG_HASH(
|
||||
MSG_CORE_REMAP_FILE_LOADED,
|
||||
"Core remap file loaded."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RUNAHEAD_ENABLED,
|
||||
"Run-Ahead enabled. Latency frames removed: %u."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RUNAHEAD_ENABLED_WITH_SECOND_INSTANCE,
|
||||
"Run-Ahead enabled with Secondary Instance. Latency frames removed: %u."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RUNAHEAD_DISABLED,
|
||||
"Run-Ahead disabled."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RUNAHEAD_CORE_DOES_NOT_SUPPORT_SAVESTATES,
|
||||
"Run-Ahead has been disabled because this core does not support save states."
|
||||
|
@ -269,6 +269,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_meta_game_focus_toggle, ME
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_meta_ui_companion_toggle, MENU_ENUM_SUBLABEL_INPUT_META_UI_COMPANION_TOGGLE)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_meta_recording_toggle, MENU_ENUM_SUBLABEL_INPUT_META_RECORDING_TOGGLE)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_meta_streaming_toggle, MENU_ENUM_SUBLABEL_INPUT_META_STREAMING_TOGGLE)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_meta_runahead_toggle, MENU_ENUM_SUBLABEL_INPUT_META_RUNAHEAD_TOGGLE)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_meta_ai_service, MENU_ENUM_SUBLABEL_INPUT_META_AI_SERVICE)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_meta_menu_toggle, MENU_ENUM_SUBLABEL_INPUT_META_MENU_TOGGLE)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_hotkey_block_delay, MENU_ENUM_SUBLABEL_INPUT_HOTKEY_BLOCK_DELAY)
|
||||
@ -1693,6 +1694,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case RARCH_STREAMING_TOGGLE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_meta_streaming_toggle);
|
||||
return 0;
|
||||
case RARCH_RUNAHEAD_TOGGLE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_meta_runahead_toggle);
|
||||
return 0;
|
||||
case RARCH_AI_SERVICE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_meta_ai_service);
|
||||
return 0;
|
||||
|
@ -459,6 +459,9 @@ enum msg_hash_enums
|
||||
MSG_GAME_REMAP_FILE_LOADED,
|
||||
MSG_DIRECTORY_REMAP_FILE_LOADED,
|
||||
MSG_CORE_REMAP_FILE_LOADED,
|
||||
MSG_RUNAHEAD_ENABLED,
|
||||
MSG_RUNAHEAD_ENABLED_WITH_SECOND_INSTANCE,
|
||||
MSG_RUNAHEAD_DISABLED,
|
||||
MSG_RUNAHEAD_CORE_DOES_NOT_SUPPORT_SAVESTATES,
|
||||
MSG_RUNAHEAD_FAILED_TO_SAVE_STATE,
|
||||
MSG_RUNAHEAD_FAILED_TO_LOAD_STATE,
|
||||
@ -851,6 +854,7 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_UI_COMPANION_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_RECORDING_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_RUNAHEAD_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_AI_SERVICE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
|
||||
@ -903,6 +907,7 @@ enum msg_hash_enums
|
||||
MENU_ENUM_SUBLABEL_INPUT_META_UI_COMPANION_TOGGLE,
|
||||
MENU_ENUM_SUBLABEL_INPUT_META_RECORDING_TOGGLE,
|
||||
MENU_ENUM_SUBLABEL_INPUT_META_STREAMING_TOGGLE,
|
||||
MENU_ENUM_SUBLABEL_INPUT_META_RUNAHEAD_TOGGLE,
|
||||
MENU_ENUM_SUBLABEL_INPUT_META_AI_SERVICE,
|
||||
MENU_ENUM_SUBLABEL_INPUT_META_MENU_TOGGLE,
|
||||
|
||||
|
42
retroarch.c
42
retroarch.c
@ -2730,6 +2730,7 @@ static const struct input_bind_map input_config_bind_map[RARCH_BIND_LIST_END_NUL
|
||||
#endif
|
||||
DECLARE_META_BIND(2, recording_toggle, RARCH_RECORDING_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_RECORDING_TOGGLE),
|
||||
DECLARE_META_BIND(2, streaming_toggle, RARCH_STREAMING_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE),
|
||||
DECLARE_META_BIND(2, runahead_toggle, RARCH_RUNAHEAD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_RUNAHEAD_TOGGLE),
|
||||
DECLARE_META_BIND(2, ai_service, RARCH_AI_SERVICE, MENU_ENUM_LABEL_VALUE_INPUT_META_AI_SERVICE),
|
||||
};
|
||||
|
||||
@ -12978,6 +12979,7 @@ static const struct cmd_map map[] = {
|
||||
{ "MENU_TOGGLE", RARCH_MENU_TOGGLE },
|
||||
{ "RECORDING_TOGGLE", RARCH_RECORDING_TOGGLE },
|
||||
{ "STREAMING_TOGGLE", RARCH_STREAMING_TOGGLE },
|
||||
{ "RUNAHEAD_TOGGLE", RARCH_RUNAHEAD_TOGGLE },
|
||||
{ "MENU_UP", RETRO_DEVICE_ID_JOYPAD_UP },
|
||||
{ "MENU_DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN },
|
||||
{ "MENU_LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT },
|
||||
@ -15989,6 +15991,37 @@ bool command_event(enum event_command cmd, void *data)
|
||||
command_event(CMD_EVENT_RECORD_INIT, NULL);
|
||||
}
|
||||
break;
|
||||
case CMD_EVENT_RUNAHEAD_TOGGLE:
|
||||
settings->bools.run_ahead_enabled = !(settings->bools.run_ahead_enabled);
|
||||
|
||||
char msg[256];
|
||||
msg[0] = '\0';
|
||||
|
||||
if (!settings->bools.run_ahead_enabled)
|
||||
{
|
||||
runloop_msg_queue_push(msg_hash_to_str(MSG_RUNAHEAD_DISABLED),
|
||||
1, 100, false,
|
||||
NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
}
|
||||
else if (!settings->bools.run_ahead_secondary_instance)
|
||||
{
|
||||
snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_RUNAHEAD_ENABLED),
|
||||
settings->uints.run_ahead_frames);
|
||||
|
||||
runloop_msg_queue_push(
|
||||
msg, 1, 100, false,
|
||||
NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
}
|
||||
else
|
||||
{
|
||||
snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_RUNAHEAD_ENABLED_WITH_SECOND_INSTANCE),
|
||||
settings->uints.run_ahead_frames);
|
||||
|
||||
runloop_msg_queue_push(
|
||||
msg, 1, 100, false,
|
||||
NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
}
|
||||
break;
|
||||
case CMD_EVENT_RECORDING_TOGGLE:
|
||||
if (recording_is_enabled())
|
||||
command_event(CMD_EVENT_RECORD_DEINIT, NULL);
|
||||
@ -39691,12 +39724,15 @@ static enum runloop_state runloop_check_state(
|
||||
/* Check if we have pressed the recording toggle button */
|
||||
HOTKEY_CHECK(RARCH_RECORDING_TOGGLE, CMD_EVENT_RECORDING_TOGGLE, true, NULL);
|
||||
|
||||
/* Check if we have pressed the AI Service toggle button */
|
||||
HOTKEY_CHECK(RARCH_AI_SERVICE, CMD_EVENT_AI_SERVICE_TOGGLE, true, NULL);
|
||||
|
||||
/* Check if we have pressed the streaming toggle button */
|
||||
HOTKEY_CHECK(RARCH_STREAMING_TOGGLE, CMD_EVENT_STREAMING_TOGGLE, true, NULL);
|
||||
|
||||
/* Check if we have pressed the Run-Ahead toggle button */
|
||||
HOTKEY_CHECK(RARCH_RUNAHEAD_TOGGLE, CMD_EVENT_RUNAHEAD_TOGGLE, true, NULL);
|
||||
|
||||
/* Check if we have pressed the AI Service toggle button */
|
||||
HOTKEY_CHECK(RARCH_AI_SERVICE, CMD_EVENT_AI_SERVICE_TOGGLE, true, NULL);
|
||||
|
||||
if (BIT256_GET(current_bits, RARCH_VOLUME_UP))
|
||||
command_event(CMD_EVENT_VOLUME_UP, NULL);
|
||||
else if (BIT256_GET(current_bits, RARCH_VOLUME_DOWN))
|
||||
|
Loading…
x
Reference in New Issue
Block a user