mirror of
https://github.com/libretro/RetroArch.git
synced 2025-02-20 17:54:11 +00:00
Merge pull request #11464 from sonninnos/cli-closing
Add option for quitting on close content
This commit is contained in:
commit
179bc894ec
@ -559,6 +559,8 @@ static const bool menu_savestate_resume = false;
|
||||
|
||||
#define DEFAULT_MENU_INSERT_DISK_RESUME true
|
||||
|
||||
#define DEFAULT_QUIT_ON_CLOSE_CONTENT QUIT_ON_CLOSE_CONTENT_DISABLED
|
||||
|
||||
static const bool content_show_settings = true;
|
||||
static const bool content_show_favorites = true;
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
|
@ -2027,6 +2027,7 @@ static struct config_uint_setting *populate_settings_uint(
|
||||
SETTING_UINT("core_updater_auto_backup_history_size", &settings->uints.core_updater_auto_backup_history_size, true, DEFAULT_CORE_UPDATER_AUTO_BACKUP_HISTORY_SIZE, false);
|
||||
|
||||
SETTING_UINT("video_black_frame_insertion", &settings->uints.video_black_frame_insertion, true, DEFAULT_BLACK_FRAME_INSERTION, false);
|
||||
SETTING_UINT("quit_on_close_content", &settings->uints.quit_on_close_content, true, DEFAULT_QUIT_ON_CLOSE_CONTENT, false);
|
||||
*size = count;
|
||||
|
||||
return tmp;
|
||||
|
@ -271,6 +271,7 @@ typedef struct settings
|
||||
|
||||
unsigned core_updater_auto_backup_history_size;
|
||||
unsigned video_black_frame_insertion;
|
||||
unsigned quit_on_close_content;
|
||||
} uints;
|
||||
|
||||
struct
|
||||
|
@ -2072,6 +2072,10 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_MENU_INSERT_DISK_RESUME,
|
||||
"menu_insert_disk_resume"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_QUIT_ON_CLOSE_CONTENT,
|
||||
"quit_on_close_content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_PAUSE_NONACTIVE,
|
||||
"pause_nonactive"
|
||||
|
@ -3851,6 +3851,14 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_INSERT_DISK_RESUME,
|
||||
"Automatically close the menu and resume content after inserting or loading a new disc."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_QUIT_ON_CLOSE_CONTENT,
|
||||
"Quit on Close Content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_QUIT_ON_CLOSE_CONTENT,
|
||||
"Automatically quit RetroArch when closing content. 'CLI' quits only when content is launched via command line."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MOUSE_ENABLE,
|
||||
"Mouse Support"
|
||||
|
@ -495,6 +495,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_swap_ok_cancel, MENU_
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_pause_libretro, MENU_ENUM_SUBLABEL_PAUSE_LIBRETRO)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_savestate_resume, MENU_ENUM_SUBLABEL_MENU_SAVESTATE_RESUME)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_insert_disk_resume, MENU_ENUM_SUBLABEL_MENU_INSERT_DISK_RESUME)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_quit_on_close_content, MENU_ENUM_SUBLABEL_QUIT_ON_CLOSE_CONTENT)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_driver, MENU_ENUM_SUBLABEL_VIDEO_DRIVER)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_audio_driver, MENU_ENUM_SUBLABEL_AUDIO_DRIVER)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_driver, MENU_ENUM_SUBLABEL_INPUT_DRIVER)
|
||||
@ -2846,6 +2847,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_MENU_INSERT_DISK_RESUME:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_insert_disk_resume);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_QUIT_ON_CLOSE_CONTENT:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_quit_on_close_content);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MENU_INPUT_SWAP_OK_CANCEL:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_swap_ok_cancel);
|
||||
break;
|
||||
|
@ -384,6 +384,14 @@ enum playlist_entry_remove_enable_type
|
||||
PLAYLIST_ENTRY_REMOVE_ENABLE_LAST
|
||||
};
|
||||
|
||||
enum quit_on_close_content_type
|
||||
{
|
||||
QUIT_ON_CLOSE_CONTENT_DISABLED = 0,
|
||||
QUIT_ON_CLOSE_CONTENT_ENABLED,
|
||||
QUIT_ON_CLOSE_CONTENT_CLI,
|
||||
QUIT_ON_CLOSE_CONTENT_LAST
|
||||
};
|
||||
|
||||
RETRO_END_DECLS
|
||||
|
||||
#endif
|
||||
|
@ -7134,6 +7134,7 @@ unsigned menu_displaylist_build_list(
|
||||
{MENU_ENUM_LABEL_PAUSE_LIBRETRO, PARSE_ONLY_BOOL, true},
|
||||
{MENU_ENUM_LABEL_MENU_SAVESTATE_RESUME, PARSE_ONLY_BOOL, true},
|
||||
{MENU_ENUM_LABEL_MENU_INSERT_DISK_RESUME, PARSE_ONLY_BOOL, true},
|
||||
{MENU_ENUM_LABEL_QUIT_ON_CLOSE_CONTENT, PARSE_ONLY_UINT, true},
|
||||
{MENU_ENUM_LABEL_MOUSE_ENABLE, PARSE_ONLY_BOOL, true},
|
||||
{MENU_ENUM_LABEL_POINTER_ENABLE, PARSE_ONLY_BOOL, true},
|
||||
{MENU_ENUM_LABEL_THREADED_DATA_RUNLOOP_ENABLE, PARSE_ONLY_BOOL, true},
|
||||
|
@ -6340,6 +6340,27 @@ static void setting_get_string_representation_uint_libretro_log_level(
|
||||
}
|
||||
}
|
||||
|
||||
static void setting_get_string_representation_uint_quit_on_close_content(
|
||||
rarch_setting_t *setting,
|
||||
char *s, size_t len)
|
||||
{
|
||||
if (!setting)
|
||||
return;
|
||||
|
||||
switch (*setting->value.target.unsigned_integer)
|
||||
{
|
||||
case QUIT_ON_CLOSE_CONTENT_DISABLED:
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF), len);
|
||||
break;
|
||||
case QUIT_ON_CLOSE_CONTENT_ENABLED:
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON), len);
|
||||
break;
|
||||
case QUIT_ON_CLOSE_CONTENT_CLI:
|
||||
strlcpy(s, "CLI", len);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
enum setting_type menu_setting_get_browser_selection_type(rarch_setting_t *setting)
|
||||
{
|
||||
if (!setting)
|
||||
@ -13781,6 +13802,22 @@ static bool setting_append_list(
|
||||
SD_FLAG_ADVANCED
|
||||
);
|
||||
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->uints.quit_on_close_content,
|
||||
MENU_ENUM_LABEL_QUIT_ON_CLOSE_CONTENT,
|
||||
MENU_ENUM_LABEL_VALUE_QUIT_ON_CLOSE_CONTENT,
|
||||
DEFAULT_QUIT_ON_CLOSE_CONTENT,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
||||
(*list)[list_info->index - 1].get_string_representation =
|
||||
&setting_get_string_representation_uint_quit_on_close_content;
|
||||
menu_settings_list_current_add_range(list, list_info, 0, QUIT_ON_CLOSE_CONTENT_LAST-1, 1, true, true);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.menu_mouse_enable,
|
||||
|
@ -949,6 +949,11 @@ enum msg_hash_enums
|
||||
MENU_LABEL(INPUT_UNIFIED_MENU_CONTROLS),
|
||||
|
||||
MENU_LABEL(QUIT_PRESS_TWICE),
|
||||
MENU_LABEL(QUIT_ON_CLOSE_CONTENT),
|
||||
|
||||
MENU_ENUM_LABEL_VALUE_QUIT_ON_CLOSE_CONTENT_DISABLED,
|
||||
MENU_ENUM_LABEL_VALUE_QUIT_ON_CLOSE_CONTENT_ENABLED,
|
||||
MENU_ENUM_LABEL_VALUE_QUIT_ON_CLOSE_CONTENT_CLI,
|
||||
|
||||
/* Video */
|
||||
MENU_LABEL(CRT_SWITCH_RESOLUTION),
|
||||
|
@ -16308,6 +16308,11 @@ bool command_event(enum event_command cmd, void *data)
|
||||
|
||||
if (is_inited)
|
||||
{
|
||||
if ( (settings->uints.quit_on_close_content == QUIT_ON_CLOSE_CONTENT_CLI && global->launched_from_cli)
|
||||
|| settings->uints.quit_on_close_content == QUIT_ON_CLOSE_CONTENT_ENABLED
|
||||
)
|
||||
command_event(CMD_EVENT_QUIT, NULL);
|
||||
|
||||
if (!task_push_start_dummy_core(&content_info))
|
||||
return false;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user