diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index cc952b08a2..46516eb3db 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -56,6 +56,11 @@ static int deferred_push_rdb_collection(menu_displaylist_info_t *info) return menu_displaylist_push_list(info, DISPLAYLIST_PLAYLIST_COLLECTION); } +static int deferred_push_accounts_list(menu_displaylist_info_t *info) +{ + return menu_displaylist_push_list(info, DISPLAYLIST_ACCOUNTS_LIST); +} + static int deferred_push_help(menu_displaylist_info_t *info) { return menu_displaylist_push_list(info, DISPLAYLIST_HELP_SCREEN_LIST); @@ -543,6 +548,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label(menu_file_list_cbs_t * { switch (label_hash) { + case MENU_LABEL_DEFERRED_ACCOUNTS_LIST: + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_accounts_list); + break; case MENU_LABEL_DEFERRED_ARCHIVE_ACTION_DETECT_CORE: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_archive_action_detect_core); break; diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 1b44f363fa..b64ab2ac33 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -283,6 +283,12 @@ int generic_action_ok_displaylist_push(const char *path, info_path = settings->libretro_directory; info_label = menu_hash_to_str(MENU_LABEL_DEFERRED_CORE_LIST_SET); break; + case ACTION_OK_DL_ACCOUNTS_LIST: + info.directory_ptr = idx; + info.type = type; + info_path = path; + info_label = menu_hash_to_str(MENU_LABEL_DEFERRED_ACCOUNTS_LIST); + break; case ACTION_OK_DL_CONTENT_SETTINGS: dl_type = DISPLAYLIST_CONTENT_SETTINGS; info.list = menu_list->selection_buf; @@ -1541,6 +1547,13 @@ static int action_ok_open_archive_detect_core(const char *path, ACTION_OK_DL_OPEN_ARCHIVE_DETECT_CORE); } +static int action_ok_push_accounts_list(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_displaylist_push(path, label, 0, 0, entry_idx, + ACTION_OK_DL_ACCOUNTS_LIST); +} + static int action_ok_open_archive(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { @@ -1838,6 +1851,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: BIND_ACTION_OK(cbs, action_ok_shader_parameters); break; + case MENU_LABEL_ACCOUNTS_LIST: + BIND_ACTION_OK(cbs, action_ok_push_accounts_list); + break; case MENU_LABEL_SHADER_OPTIONS: case MENU_VALUE_INPUT_SETTINGS: case MENU_LABEL_CORE_OPTIONS: diff --git a/menu/intl/menu_hash_us.c b/menu/intl/menu_hash_us.c index 03d8997f05..cb79c80110 100644 --- a/menu/intl/menu_hash_us.c +++ b/menu/intl/menu_hash_us.c @@ -26,6 +26,12 @@ static const char *menu_hash_to_str_us_label(uint32_t hash) { switch (hash) { + case MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS: + return "retro_achievements"; + case MENU_LABEL_DEFERRED_ACCOUNTS_LIST: + return "deferred_accounts_list"; + case MENU_LABEL_ACCOUNTS_LIST: + return "accounts_list"; case MENU_LABEL_DEBUG_PANEL_ENABLE: return "debug_panel_enable"; case MENU_LABEL_HELP_SCANNING_CONTENT: @@ -650,6 +656,10 @@ const char *menu_hash_to_str_us(uint32_t hash) switch (hash) { + case MENU_LABEL_VALUE_ACCOUNTS_RETRO_ACHIEVEMENTS: + return "Retro Achievements"; + case MENU_LABEL_VALUE_ACCOUNTS_LIST: + return "Accounts"; case MENU_LABEL_VALUE_DEBUG_PANEL_ENABLE: return "Debug Panel Enable"; case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT: diff --git a/menu/menu_cbs.c b/menu/menu_cbs.c index 5172c7be09..b72fdd5489 100644 --- a/menu/menu_cbs.c +++ b/menu/menu_cbs.c @@ -21,7 +21,7 @@ #include "menu_hash.h" #include "menu_cbs.h" -#if 0 +#if 1 #define DEBUG_LOG #endif diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index f350470146..698d87ef5e 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -41,6 +41,7 @@ enum ACTION_OK_DL_GENERIC, ACTION_OK_DL_PUSH_DEFAULT, ACTION_OK_DL_DOWNLOADS_DIR, + ACTION_OK_DL_ACCOUNTS_LIST, ACTION_OK_DL_CONTENT_LIST, ACTION_OK_DL_REMAP_FILE, ACTION_OK_DL_RECORD_CONFIGFILE, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 5a26820919..c2b479f4a5 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2421,6 +2421,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) case DISPLAYLIST_INFORMATION_LIST: case DISPLAYLIST_ADD_CONTENT_LIST: case DISPLAYLIST_LOAD_CONTENT_LIST: + case DISPLAYLIST_ACCOUNTS_LIST: case DISPLAYLIST_OPTIONS: case DISPLAYLIST_OPTIONS_CHEATS: case DISPLAYLIST_OPTIONS_REMAPPINGS: @@ -2484,6 +2485,18 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) menu_entries_set_refresh(false); } break; + case DISPLAYLIST_ACCOUNTS_LIST: +#ifdef HAVE_CHEEVOS + menu_list_push(info->list, + menu_hash_to_str(MENU_LABEL_VALUE_ACCOUNTS_RETRO_ACHIEVEMENTS), + menu_hash_to_str(MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS), + MENU_SETTING_ACTION, 0, 0); +#else + menu_list_push(info->list, + menu_hash_to_str(MENU_LABEL_VALUE_NO_ITEMS), + "", 0, 0, 0); +#endif + break; case DISPLAYLIST_HELP_SCREEN_LIST: menu_list_push(info->list, menu_hash_to_str(MENU_LABEL_VALUE_HELP_CONTROLS), diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 2cb3fd6556..2a07f23b86 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -78,6 +78,7 @@ enum DISPLAYLIST_SHADER_PARAMETERS_PRESET, DISPLAYLIST_SYSTEM_INFO, DISPLAYLIST_DEBUG_INFO, + DISPLAYLIST_ACCOUNTS_LIST, DISPLAYLIST_LOAD_CONTENT_LIST, DISPLAYLIST_INFORMATION_LIST, DISPLAYLIST_CONTENT_SETTINGS, diff --git a/menu/menu_hash.h b/menu/menu_hash.h index 4fb821244c..1c0f4a3878 100644 --- a/menu/menu_hash.h +++ b/menu/menu_hash.h @@ -22,6 +22,13 @@ extern "C" { #endif +#define MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS 0xe6b7c16cU +#define MENU_LABEL_VALUE_ACCOUNTS_RETRO_ACHIEVEMENTS 0x7d247a6dU + +#define MENU_LABEL_DEFERRED_ACCOUNTS_LIST 0x3d2b8860U +#define MENU_LABEL_ACCOUNTS_LIST 0x774c15a0U +#define MENU_LABEL_VALUE_ACCOUNTS_LIST 0x86e551a1U + #define MENU_LABEL_DEBUG_PANEL_ENABLE 0xbad176a1U #define MENU_LABEL_VALUE_DEBUG_PANEL_ENABLE 0x15042803U diff --git a/menu/menu_setting.c b/menu/menu_setting.c index bc0b670118..dc4b4cf247 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -5847,6 +5847,13 @@ static bool setting_append_list_user_options( START_SUB_GROUP(list, list_info, "State", group_info.name, subgroup_info, parent_group); + CONFIG_ACTION( + menu_hash_to_str(MENU_LABEL_ACCOUNTS_LIST), + menu_hash_to_str(MENU_LABEL_VALUE_ACCOUNTS_LIST), + group_info.name, + subgroup_info.name, + parent_group); + CONFIG_STRING( settings->username, menu_hash_to_str(MENU_LABEL_NETPLAY_NICKNAME), diff --git a/qb/config.params.sh b/qb/config.params.sh index 67940a399e..b051b43f15 100644 --- a/qb/config.params.sh +++ b/qb/config.params.sh @@ -1,6 +1,7 @@ HAVE_LIBRETRODB=yes # Disable libretrodb HAVE_RGUI=yes # Disable RGUI HAVE_GLUI=auto # Enable GLUI menu +HAVE_CHEEVOS=no # Enable Cheevos (achievements) HAVE_XMB=auto # Enable XMB menu HAVE_DYNAMIC=yes # Disable dynamic loading of libretro library HAVE_SDL=auto # SDL support