mirror of
https://github.com/libretro/RetroArch.git
synced 2025-02-21 10:11:18 +00:00
(steam) Introduce Steam Rich Presence (#13798)
This commit is contained in:
parent
fccef557fc
commit
4a1a1e2fa7
@ -2226,6 +2226,7 @@ ifeq ($(HAVE_NETWORKING), 1)
|
||||
|
||||
ifeq ($(HAVE_DISCORD), 1)
|
||||
NEED_CXX_LINKER = 1
|
||||
HAVE_PRESENCE = 1
|
||||
DEFINES += -DHAVE_DISCORD
|
||||
INCLUDE_DIRS += -Ideps/discord-rpc/include
|
||||
|
||||
@ -2463,11 +2464,20 @@ endif
|
||||
|
||||
### Steam integration using mist
|
||||
ifeq ($(HAVE_MIST), 1)
|
||||
HAVE_PRESENCE = 1
|
||||
DEFINES += -DHAVE_MIST
|
||||
INCLUDE_DIRS += -I$(MIST_PATH)/include
|
||||
LDFLAGS += -L$(MIST_PATH) -lmist
|
||||
OBJ += steam/steam.o tasks/task_steam.o
|
||||
endif
|
||||
|
||||
### Shared rich presence code for Discord and Steam
|
||||
|
||||
ifeq ($(HAVE_PRESENCE), 1)
|
||||
DEFINES += -DHAVE_PRESENCE
|
||||
OBJ += network/presence.o
|
||||
endif
|
||||
|
||||
##################################
|
||||
### Classic Platform specifics ###
|
||||
###############WIP################
|
||||
|
@ -32,8 +32,8 @@
|
||||
#include "../network/net_http_special.h"
|
||||
#include "../tasks/tasks_internal.h"
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
#include "../network/discord.h"
|
||||
#ifdef HAVE_PRESENCE
|
||||
#include "../network/presence.h"
|
||||
#endif
|
||||
|
||||
#include "../deps/rcheevos/include/rc_api_runtime.h"
|
||||
@ -1268,9 +1268,8 @@ static retro_time_t rcheevos_client_prepare_ping(
|
||||
rcheevos_log_post_url(request->request.url,
|
||||
request->request.post_data);
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
if (settings->bools.discord_enable && discord_is_ready())
|
||||
discord_update(DISCORD_PRESENCE_RETROACHIEVEMENTS);
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_update(PRESENCE_RETROACHIEVEMENTS);
|
||||
#endif
|
||||
|
||||
/* Update rich presence every two minutes */
|
||||
|
@ -244,7 +244,7 @@ enum event_command
|
||||
CMD_EVENT_MIXER_VOLUME_UP,
|
||||
CMD_EVENT_MIXER_VOLUME_DOWN,
|
||||
CMD_EVENT_DISCORD_INIT,
|
||||
CMD_EVENT_DISCORD_UPDATE,
|
||||
CMD_EVENT_PRESENCE_UPDATE,
|
||||
CMD_EVENT_OSK_TOGGLE,
|
||||
CMD_EVENT_RECORDING_TOGGLE,
|
||||
CMD_EVENT_STREAMING_TOGGLE,
|
||||
|
12
config.def.h
12
config.def.h
@ -53,6 +53,11 @@
|
||||
#include "../input/input_overlay.h"
|
||||
#endif
|
||||
|
||||
/* Required for Steam enum settings */
|
||||
#if defined(HAVE_MIST)
|
||||
#include "steam/steam.h"
|
||||
#endif
|
||||
|
||||
#if defined(HW_RVL)
|
||||
#define MAX_GAMMA_SETTING 30
|
||||
#elif defined(GEKKO)
|
||||
@ -605,6 +610,8 @@
|
||||
|
||||
#define DEFAULT_SETTINGS_SHOW_DIRECTORY true
|
||||
|
||||
#define DEFAULT_SETTINGS_SHOW_STEAM true
|
||||
|
||||
#define DEFAULT_QUICK_MENU_SHOW_RESUME_CONTENT true
|
||||
|
||||
#define DEFAULT_QUICK_MENU_SHOW_RESTART_CONTENT true
|
||||
@ -1518,6 +1525,11 @@ static const enum resampler_quality audio_resampler_quality_level = RESAMPLER_QU
|
||||
|
||||
static const unsigned midi_volume = 100;
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
/* Steam */
|
||||
#define DEFAULT_STEAM_RICH_PRESENCE_FORMAT STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM
|
||||
#endif
|
||||
|
||||
/* Only applies to Android 7.0 (API 24) and up */
|
||||
static const bool sustained_performance_mode = false;
|
||||
|
||||
|
@ -1752,6 +1752,9 @@ static struct config_bool_setting *populate_settings_bool(
|
||||
#ifdef HAVE_THREADS
|
||||
SETTING_BOOL("threaded_data_runloop_enable", &settings->bools.threaded_data_runloop_enable, true, DEFAULT_THREADED_DATA_RUNLOOP_ENABLE, false);
|
||||
#endif
|
||||
#ifdef HAVE_MIST
|
||||
SETTING_BOOL("steam_rich_presence_enable", &settings->bools.steam_rich_presence_enable, true, false, false);
|
||||
#endif
|
||||
#ifdef HAVE_MENU
|
||||
SETTING_BOOL("menu_unified_controls", &settings->bools.menu_unified_controls, true, false, false);
|
||||
SETTING_BOOL("menu_throttle_framerate", &settings->bools.menu_throttle_framerate, true, true, false);
|
||||
@ -1792,6 +1795,9 @@ static struct config_bool_setting *populate_settings_bool(
|
||||
SETTING_BOOL("settings_show_playlists", &settings->bools.settings_show_playlists, true, DEFAULT_SETTINGS_SHOW_PLAYLISTS, false);
|
||||
SETTING_BOOL("settings_show_user", &settings->bools.settings_show_user, true, DEFAULT_SETTINGS_SHOW_USER, false);
|
||||
SETTING_BOOL("settings_show_directory", &settings->bools.settings_show_directory, true, DEFAULT_SETTINGS_SHOW_DIRECTORY, false);
|
||||
#ifdef HAVE_MIST
|
||||
SETTING_BOOL("settings_show_steam", &settings->bools.settings_show_steam, true, DEFAULT_SETTINGS_SHOW_STEAM, false);
|
||||
#endif
|
||||
|
||||
SETTING_BOOL("quick_menu_show_resume_content", &settings->bools.quick_menu_show_resume_content, true, DEFAULT_QUICK_MENU_SHOW_RESUME_CONTENT, false);
|
||||
SETTING_BOOL("quick_menu_show_restart_content", &settings->bools.quick_menu_show_restart_content, true, DEFAULT_QUICK_MENU_SHOW_RESTART_CONTENT, false);
|
||||
@ -2331,6 +2337,10 @@ static struct config_uint_setting *populate_settings_uint(
|
||||
SETTING_UINT("cpu_max_freq", &settings->uints.cpu_max_freq, true, ~0U, false);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
SETTING_UINT("steam_rich_presence_format", &settings->uints.steam_rich_presence_format, true, DEFAULT_STEAM_RICH_PRESENCE_FORMAT, false);
|
||||
#endif
|
||||
|
||||
*size = count;
|
||||
|
||||
return tmp;
|
||||
|
@ -339,6 +339,10 @@ typedef struct settings
|
||||
unsigned cpu_min_freq;
|
||||
unsigned cpu_max_freq;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
unsigned steam_rich_presence_format;
|
||||
#endif
|
||||
} uints;
|
||||
|
||||
struct
|
||||
@ -740,6 +744,9 @@ typedef struct settings
|
||||
bool settings_show_playlists;
|
||||
bool settings_show_user;
|
||||
bool settings_show_directory;
|
||||
#ifdef HAVE_MIST
|
||||
bool settings_show_steam;
|
||||
#endif
|
||||
bool quick_menu_show_resume_content;
|
||||
bool quick_menu_show_restart_content;
|
||||
bool quick_menu_show_close_content;
|
||||
@ -832,6 +839,11 @@ typedef struct settings
|
||||
/* Driver */
|
||||
bool driver_switch_enable;
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
/* Steam */
|
||||
bool steam_rich_presence_enable;
|
||||
#endif
|
||||
|
||||
/* Misc. */
|
||||
bool discord_enable;
|
||||
bool threaded_data_runloop_enable;
|
||||
|
@ -629,6 +629,18 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_CORE_STEAM_UNINSTALL,
|
||||
"core_steam_uninstall"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_STEAM_SETTINGS,
|
||||
"steam_settings"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_STEAM_RICH_PRESENCE_ENABLE,
|
||||
"steam_rich_presence_enable"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_STEAM_RICH_PRESENCE_FORMAT,
|
||||
"steam_rich_presence_format"
|
||||
)
|
||||
#endif
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_CPU_ARCHITECTURE,
|
||||
@ -909,6 +921,10 @@ MSG_HASH(
|
||||
"deferred_core_manager_list"
|
||||
)
|
||||
#ifdef HAVE_MIST
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_DEFERRED_STEAM_SETTINGS_LIST,
|
||||
"deferred_steam_settings_list"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_STEAM_LIST,
|
||||
"deferred_core_manager_steam_list"
|
||||
@ -5206,6 +5222,12 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_SETTINGS_SHOW_DIRECTORY,
|
||||
"settings_show_directory"
|
||||
)
|
||||
#ifdef HAVE_MIST
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_SETTINGS_SHOW_STEAM,
|
||||
"settings_show_steam"
|
||||
)
|
||||
#endif
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_FRAME_TIME_COUNTER_RESET_AFTER_FASTFORWARDING,
|
||||
"frame_time_counter_reset_after_fastforwarding"
|
||||
|
@ -1289,6 +1289,17 @@ MSG_HASH(
|
||||
"Change default directories where files are located."
|
||||
)
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_SETTINGS,
|
||||
"Steam"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_STEAM_SETTINGS,
|
||||
"Change settings related to Steam."
|
||||
)
|
||||
#endif
|
||||
|
||||
/* Settings > Drivers */
|
||||
|
||||
MSG_HASH(
|
||||
@ -5249,6 +5260,15 @@ MSG_HASH(
|
||||
"Show 'Directory' settings."
|
||||
)
|
||||
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_STEAM,
|
||||
"Show 'Steam'"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_SETTINGS_SHOW_STEAM,
|
||||
"Show 'Steam' settings."
|
||||
)
|
||||
|
||||
/* Settings > User Interface > Appearance */
|
||||
|
||||
MSG_HASH(
|
||||
@ -6371,6 +6391,53 @@ MSG_HASH(
|
||||
"System event logs are stored in this directory."
|
||||
)
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
/* Settings > Steam */
|
||||
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_ENABLE,
|
||||
"Enable Rich Presence"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_STEAM_RICH_PRESENCE_ENABLE,
|
||||
"Share your current status within RetroArch on Steam."
|
||||
)
|
||||
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT,
|
||||
"Rich Presence Content Format"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_STEAM_RICH_PRESENCE_FORMAT,
|
||||
"Decide what information related to the running content will be shared."
|
||||
)
|
||||
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT,
|
||||
"Content"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CORE,
|
||||
"Core name"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_SYSTEM,
|
||||
"System name"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM,
|
||||
"Content (System name)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT_CORE,
|
||||
"Content (Core name)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM_CORE,
|
||||
"Content (System name - Core name)"
|
||||
)
|
||||
#endif
|
||||
|
||||
/* Music */
|
||||
|
||||
/* Music > Quick Menu */
|
||||
|
@ -273,6 +273,7 @@ GENERIC_DEFERRED_PUSH(deferred_push_core_delete_backup_list, DISPLAYLIST_
|
||||
GENERIC_DEFERRED_PUSH(deferred_push_core_manager_list, DISPLAYLIST_CORE_MANAGER_LIST)
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
GENERIC_DEFERRED_PUSH(deferred_push_steam_settings_list, DISPLAYLIST_STEAM_SETTINGS_LIST)
|
||||
GENERIC_DEFERRED_PUSH(deferred_push_core_manager_steam_list, DISPLAYLIST_CORE_MANAGER_STEAM_LIST)
|
||||
GENERIC_DEFERRED_PUSH(deferred_push_core_information_steam_list, DISPLAYLIST_CORE_INFORMATION_STEAM_LIST)
|
||||
#endif
|
||||
@ -888,6 +889,7 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
|
||||
{MENU_ENUM_LABEL_DEFERRED_CORE_DELETE_BACKUP_LIST, deferred_push_core_delete_backup_list},
|
||||
{MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_LIST, deferred_push_core_manager_list},
|
||||
#ifdef HAVE_MIST
|
||||
{MENU_ENUM_LABEL_DEFERRED_STEAM_SETTINGS_LIST, deferred_push_steam_settings_list},
|
||||
{MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_STEAM_LIST, deferred_push_core_manager_steam_list},
|
||||
{MENU_ENUM_LABEL_DEFERRED_CORE_INFORMATION_STEAM_LIST, deferred_push_core_information_steam_list},
|
||||
#endif
|
||||
@ -1322,6 +1324,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
|
||||
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_core_manager_list);
|
||||
break;
|
||||
#ifdef HAVE_MIST
|
||||
case MENU_ENUM_LABEL_DEFERRED_STEAM_SETTINGS_LIST:
|
||||
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_steam_settings_list);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_STEAM_LIST:
|
||||
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_core_manager_steam_list);
|
||||
break;
|
||||
|
@ -489,6 +489,8 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl)
|
||||
case ACTION_OK_DL_CORE_MANAGER_LIST:
|
||||
return MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_LIST;
|
||||
#ifdef HAVE_MIST
|
||||
case ACTION_OK_DL_STEAM_SETTINGS_LIST:
|
||||
return MENU_ENUM_LABEL_DEFERRED_STEAM_SETTINGS_LIST;
|
||||
case ACTION_OK_DL_CORE_MANAGER_STEAM_LIST:
|
||||
return MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_STEAM_LIST;
|
||||
#endif
|
||||
@ -1583,6 +1585,7 @@ int generic_action_ok_displaylist_push(const char *path,
|
||||
case ACTION_OK_DL_MANUAL_CONTENT_SCAN_LIST:
|
||||
case ACTION_OK_DL_CORE_MANAGER_LIST:
|
||||
#ifdef HAVE_MIST
|
||||
case ACTION_OK_DL_STEAM_SETTINGS_LIST:
|
||||
case ACTION_OK_DL_CORE_MANAGER_STEAM_LIST:
|
||||
#endif
|
||||
case ACTION_OK_DL_CORE_OPTION_OVERRIDE_LIST:
|
||||
@ -5829,6 +5832,7 @@ DEFAULT_ACTION_OK_FUNC(action_ok_push_manual_content_scan_list, ACTION_OK_DL_MAN
|
||||
DEFAULT_ACTION_OK_FUNC(action_ok_manual_content_scan_dat_file, ACTION_OK_DL_MANUAL_CONTENT_SCAN_DAT_FILE)
|
||||
DEFAULT_ACTION_OK_FUNC(action_ok_push_core_manager_list, ACTION_OK_DL_CORE_MANAGER_LIST)
|
||||
#ifdef HAVE_MIST
|
||||
DEFAULT_ACTION_OK_FUNC(action_ok_steam_settings_list, ACTION_OK_DL_STEAM_SETTINGS_LIST)
|
||||
DEFAULT_ACTION_OK_FUNC(action_ok_push_core_manager_steam_list, ACTION_OK_DL_CORE_MANAGER_STEAM_LIST)
|
||||
#endif
|
||||
DEFAULT_ACTION_OK_FUNC(action_ok_push_core_option_override_list, ACTION_OK_DL_CORE_OPTION_OVERRIDE_LIST)
|
||||
@ -8262,6 +8266,7 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
|
||||
{MENU_ENUM_LABEL_PLAYLIST_MANAGER_DEFAULT_CORE, action_ok_playlist_default_core},
|
||||
{MENU_ENUM_LABEL_CORE_MANAGER_LIST, action_ok_push_core_manager_list},
|
||||
#ifdef HAVE_MIST
|
||||
{MENU_ENUM_LABEL_STEAM_SETTINGS, action_ok_steam_settings_list},
|
||||
{MENU_ENUM_LABEL_CORE_MANAGER_STEAM_LIST, action_ok_push_core_manager_steam_list},
|
||||
{MENU_ENUM_LABEL_CORE_STEAM_INSTALL, action_ok_core_steam_install},
|
||||
{MENU_ENUM_LABEL_CORE_STEAM_UNINSTALL, action_ok_core_steam_uninstall},
|
||||
|
@ -532,6 +532,9 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_switch_installed_cores_pfd, MENU_
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_sideload_core_list, MENU_ENUM_SUBLABEL_SIDELOAD_CORE_LIST)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_core_manager_list, MENU_ENUM_SUBLABEL_CORE_MANAGER_LIST)
|
||||
#ifdef HAVE_MIST
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_steam_settings_list, MENU_ENUM_SUBLABEL_STEAM_SETTINGS)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_steam_rich_presence_enable, MENU_ENUM_SUBLABEL_STEAM_RICH_PRESENCE_ENABLE)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_steam_rich_presence_format, MENU_ENUM_SUBLABEL_STEAM_RICH_PRESENCE_FORMAT)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_core_manager_steam_list, MENU_ENUM_SUBLABEL_CORE_MANAGER_STEAM_LIST)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_show_core_manager_steam, MENU_ENUM_SUBLABEL_MENU_SHOW_CORE_MANAGER_STEAM)
|
||||
#endif
|
||||
@ -914,6 +917,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_settings_show_network,
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_settings_show_playlists, MENU_ENUM_SUBLABEL_SETTINGS_SHOW_PLAYLISTS)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_settings_show_user, MENU_ENUM_SUBLABEL_SETTINGS_SHOW_USER)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_settings_show_directory, MENU_ENUM_SUBLABEL_SETTINGS_SHOW_DIRECTORY)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_settings_show_steam, MENU_ENUM_SUBLABEL_SETTINGS_SHOW_STEAM)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_quick_menu_show_take_screenshot, MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_TAKE_SCREENSHOT)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_quick_menu_show_resume_content, MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_RESUME_CONTENT)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_quick_menu_show_restart_content, MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_RESTART_CONTENT)
|
||||
@ -2543,6 +2547,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_SETTINGS_SHOW_DIRECTORY:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_settings_show_directory);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_SETTINGS_SHOW_STEAM:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_settings_show_steam);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_QUICK_MENU_SHOW_RESUME_CONTENT:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_quick_menu_show_resume_content);
|
||||
break;
|
||||
@ -3776,6 +3783,15 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_core_manager_list);
|
||||
break;
|
||||
#ifdef HAVE_MIST
|
||||
case MENU_ENUM_LABEL_STEAM_SETTINGS:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_steam_settings_list);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_STEAM_RICH_PRESENCE_ENABLE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_steam_rich_presence_enable);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_STEAM_RICH_PRESENCE_FORMAT:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_steam_rich_presence_format);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_CORE_MANAGER_STEAM_LIST:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_core_manager_steam_list);
|
||||
break;
|
||||
|
@ -770,6 +770,7 @@ DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_title_deferred_contentless_cores_li
|
||||
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_core_updater_list, MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST)
|
||||
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_core_manager_list, MENU_ENUM_LABEL_VALUE_CORE_MANAGER_LIST)
|
||||
#ifdef HAVE_MIST
|
||||
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_steam_settings_list, MENU_ENUM_LABEL_VALUE_STEAM_SETTINGS)
|
||||
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_core_manager_steam_list, MENU_ENUM_LABEL_VALUE_CORE_MANAGER_STEAM_LIST)
|
||||
#endif
|
||||
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_core_cheat_options_list, MENU_ENUM_LABEL_VALUE_CORE_CHEAT_OPTIONS)
|
||||
@ -1160,6 +1161,8 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
|
||||
{MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_LIST,
|
||||
action_get_core_manager_list},
|
||||
#ifdef HAVE_MIST
|
||||
{MENU_ENUM_LABEL_DEFERRED_STEAM_SETTINGS_LIST,
|
||||
action_get_steam_settings_list},
|
||||
{MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_STEAM_LIST,
|
||||
action_get_core_manager_steam_list},
|
||||
#endif
|
||||
@ -1487,6 +1490,9 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
|
||||
BIND_ACTION_GET_TITLE(cbs, action_get_core_manager_list);
|
||||
break;
|
||||
#ifdef HAVE_MIST
|
||||
case MENU_ENUM_LABEL_DEFERRED_STEAM_SETTINGS_LIST:
|
||||
BIND_ACTION_GET_TITLE(cbs, action_get_steam_settings_list);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_STEAM_LIST:
|
||||
BIND_ACTION_GET_TITLE(cbs, action_get_core_manager_steam_list);
|
||||
break;
|
||||
|
@ -155,6 +155,7 @@ enum
|
||||
ACTION_OK_DL_CORE_UPDATER_LIST,
|
||||
ACTION_OK_DL_CORE_MANAGER_LIST,
|
||||
#ifdef HAVE_MIST
|
||||
ACTION_OK_DL_STEAM_SETTINGS_LIST,
|
||||
ACTION_OK_DL_CORE_MANAGER_STEAM_LIST,
|
||||
#endif
|
||||
ACTION_OK_DL_THUMBNAILS_UPDATER_LIST,
|
||||
|
@ -9309,6 +9309,40 @@ unsigned menu_displaylist_build_list(
|
||||
}
|
||||
}
|
||||
break;
|
||||
#ifdef HAVE_MIST
|
||||
case DISPLAYLIST_STEAM_SETTINGS_LIST:
|
||||
{
|
||||
menu_displaylist_build_info_selective_t build_list[] = {
|
||||
{MENU_ENUM_LABEL_STEAM_RICH_PRESENCE_ENABLE, PARSE_ONLY_BOOL, true},
|
||||
{MENU_ENUM_LABEL_STEAM_RICH_PRESENCE_FORMAT, PARSE_ONLY_UINT, false},
|
||||
};
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(build_list); i++)
|
||||
{
|
||||
switch (build_list[i].enum_idx)
|
||||
{
|
||||
case MENU_ENUM_LABEL_STEAM_RICH_PRESENCE_FORMAT:
|
||||
if (settings->bools.steam_rich_presence_enable)
|
||||
build_list[i].checked = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(build_list); i++)
|
||||
{
|
||||
if (!build_list[i].checked)
|
||||
continue;
|
||||
|
||||
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||
build_list[i].enum_idx, build_list[i].parse_type,
|
||||
false) == 0)
|
||||
count++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case DISPLAYLIST_SETTINGS_ALL:
|
||||
{
|
||||
#ifdef HAVE_TRANSLATE
|
||||
@ -9345,6 +9379,9 @@ unsigned menu_displaylist_build_list(
|
||||
{MENU_ENUM_LABEL_PLAYLIST_SETTINGS, PARSE_ACTION, true},
|
||||
{MENU_ENUM_LABEL_USER_SETTINGS, PARSE_ACTION, true},
|
||||
{MENU_ENUM_LABEL_DIRECTORY_SETTINGS, PARSE_ACTION, true},
|
||||
#ifdef HAVE_MIST
|
||||
{MENU_ENUM_LABEL_STEAM_SETTINGS, PARSE_ACTION, true},
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
@ -9422,6 +9459,11 @@ unsigned menu_displaylist_build_list(
|
||||
case MENU_ENUM_LABEL_DIRECTORY_SETTINGS:
|
||||
build_list[i].checked = settings->bools.settings_show_directory;
|
||||
break;
|
||||
#ifdef HAVE_MIST
|
||||
case MENU_ENUM_LABEL_STEAM_SETTINGS:
|
||||
build_list[i].checked = settings->bools.settings_show_steam;
|
||||
break;
|
||||
#endif
|
||||
/* MISSING:
|
||||
* MENU_ENUM_LABEL_BLUETOOTH_SETTINGS
|
||||
* MENU_ENUM_LABEL_WIFI_SETTINGS
|
||||
@ -9574,6 +9616,9 @@ unsigned menu_displaylist_build_list(
|
||||
{MENU_ENUM_LABEL_SETTINGS_SHOW_PLAYLISTS, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_SETTINGS_SHOW_USER, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_SETTINGS_SHOW_DIRECTORY, PARSE_ONLY_BOOL},
|
||||
#ifdef HAVE_MIST
|
||||
{MENU_ENUM_LABEL_SETTINGS_SHOW_STEAM, PARSE_ONLY_BOOL},
|
||||
#endif
|
||||
};
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(build_list); i++)
|
||||
@ -12580,6 +12625,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
case DISPLAYLIST_INPUT_HAPTIC_FEEDBACK_SETTINGS_LIST:
|
||||
case DISPLAYLIST_PLAYLIST_SETTINGS_LIST:
|
||||
case DISPLAYLIST_SUBSYSTEM_SETTINGS_LIST:
|
||||
#ifdef HAVE_MIST
|
||||
case DISPLAYLIST_STEAM_SETTINGS_LIST:
|
||||
#endif
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||
count = menu_displaylist_build_list(info->list, settings, type, false);
|
||||
|
||||
|
@ -104,6 +104,7 @@ enum menu_displaylist_ctl_state
|
||||
DISPLAYLIST_CORES_UPDATER,
|
||||
DISPLAYLIST_CORE_MANAGER_LIST,
|
||||
#ifdef HAVE_MIST
|
||||
DISPLAYLIST_STEAM_SETTINGS_LIST,
|
||||
DISPLAYLIST_CORE_MANAGER_STEAM_LIST,
|
||||
DISPLAYLIST_CORE_INFORMATION_STEAM_LIST,
|
||||
#endif
|
||||
|
@ -309,6 +309,9 @@ enum settings_list_type
|
||||
SETTINGS_LIST_DIRECTORY,
|
||||
SETTINGS_LIST_PRIVACY,
|
||||
SETTINGS_LIST_MIDI,
|
||||
#ifdef HAVE_MIST
|
||||
SETTINGS_LIST_STEAM,
|
||||
#endif
|
||||
SETTINGS_LIST_MANUAL_CONTENT_SCAN
|
||||
};
|
||||
|
||||
@ -6860,6 +6863,42 @@ static void setting_get_string_representation_uint_menu_screensaver_animation(
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
static void setting_get_string_representation_steam_rich_presence_format(
|
||||
rarch_setting_t *setting,
|
||||
char *s, size_t len)
|
||||
{
|
||||
if (!setting)
|
||||
return;
|
||||
|
||||
switch (*setting->value.target.unsigned_integer)
|
||||
{
|
||||
case STEAM_RICH_PRESENCE_FORMAT_CONTENT:
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT), len);
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_CORE:
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CORE), len);
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_SYSTEM:
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_SYSTEM), len);
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM:
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM), len);
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_CONTENT_CORE:
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT_CORE), len);
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM_CORE:
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM_CORE), len);
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_NONE:
|
||||
default:
|
||||
strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NONE), len);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
enum setting_type menu_setting_get_browser_selection_type(rarch_setting_t *setting)
|
||||
{
|
||||
if (!setting)
|
||||
@ -9888,6 +9927,16 @@ static bool setting_append_list(
|
||||
&subgroup_info,
|
||||
parent_group);
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
CONFIG_ACTION(
|
||||
list, list_info,
|
||||
MENU_ENUM_LABEL_STEAM_SETTINGS,
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_SETTINGS,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group);
|
||||
#endif
|
||||
|
||||
if (string_is_not_equal(settings->arrays.midi_driver, "null"))
|
||||
{
|
||||
CONFIG_ACTION(
|
||||
@ -18341,6 +18390,23 @@ static bool setting_append_list(
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.settings_show_steam,
|
||||
MENU_ENUM_LABEL_SETTINGS_SHOW_STEAM,
|
||||
MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_STEAM,
|
||||
DEFAULT_SETTINGS_SHOW_STEAM,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
#endif
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.quick_menu_show_take_screenshot,
|
||||
@ -21120,6 +21186,55 @@ static bool setting_append_list(
|
||||
END_SUB_GROUP(list, list_info, parent_group);
|
||||
END_GROUP(list, list_info, parent_group);
|
||||
break;
|
||||
#ifdef HAVE_MIST
|
||||
case SETTINGS_LIST_STEAM:
|
||||
START_GROUP(list, list_info, &group_info,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_STEAM_SETTINGS), parent_group);
|
||||
|
||||
parent_group = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_STEAM_SETTINGS);
|
||||
|
||||
START_SUB_GROUP(list, list_info, "State",
|
||||
&group_info, &subgroup_info, parent_group);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.steam_rich_presence_enable,
|
||||
MENU_ENUM_LABEL_STEAM_RICH_PRESENCE_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_ENABLE,
|
||||
false,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
(*list)[list_info->index - 1].action_ok = &setting_bool_action_left_with_refresh;
|
||||
(*list)[list_info->index - 1].action_left = &setting_bool_action_left_with_refresh;
|
||||
(*list)[list_info->index - 1].action_right = &setting_bool_action_right_with_refresh;
|
||||
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->uints.steam_rich_presence_format,
|
||||
MENU_ENUM_LABEL_STEAM_RICH_PRESENCE_FORMAT,
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT,
|
||||
DEFAULT_STEAM_RICH_PRESENCE_FORMAT,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_UINT_COMBOBOX;
|
||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
||||
(*list)[list_info->index - 1].get_string_representation =
|
||||
&setting_get_string_representation_steam_rich_presence_format;
|
||||
menu_settings_list_current_add_range(list, list_info, 0, (STEAM_RICH_PRESENCE_FORMAT_LAST-1), 1, true, true);
|
||||
|
||||
END_SUB_GROUP(list, list_info, parent_group);
|
||||
END_GROUP(list, list_info, parent_group);
|
||||
break;
|
||||
#endif
|
||||
case SETTINGS_LIST_NONE:
|
||||
default:
|
||||
break;
|
||||
@ -21268,6 +21383,9 @@ static rarch_setting_t *menu_setting_new_internal(rarch_setting_info_t *list_inf
|
||||
SETTINGS_LIST_DIRECTORY,
|
||||
SETTINGS_LIST_PRIVACY,
|
||||
SETTINGS_LIST_MIDI,
|
||||
#ifdef HAVE_MIST
|
||||
SETTINGS_LIST_STEAM,
|
||||
#endif
|
||||
SETTINGS_LIST_MANUAL_CONTENT_SCAN
|
||||
};
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
15
msg_hash.h
15
msg_hash.h
@ -1301,6 +1301,7 @@ enum msg_hash_enums
|
||||
MENU_LABEL(SETTINGS_SHOW_PLAYLISTS),
|
||||
MENU_LABEL(SETTINGS_SHOW_USER),
|
||||
MENU_LABEL(SETTINGS_SHOW_DIRECTORY),
|
||||
MENU_LABEL(SETTINGS_SHOW_STEAM),
|
||||
MENU_LABEL(QUICK_MENU_SHOW_RESUME_CONTENT),
|
||||
MENU_LABEL(QUICK_MENU_SHOW_RESTART_CONTENT),
|
||||
MENU_LABEL(QUICK_MENU_SHOW_CLOSE_CONTENT),
|
||||
@ -1592,6 +1593,7 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_DEFERRED_CORE_UPDATER_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_LIST,
|
||||
#ifdef HAVE_MIST
|
||||
MENU_ENUM_LABEL_DEFERRED_STEAM_SETTINGS_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_STEAM_LIST,
|
||||
#endif
|
||||
MENU_ENUM_LABEL_DEFERRED_THUMBNAILS_UPDATER_LIST,
|
||||
@ -2310,6 +2312,19 @@ enum msg_hash_enums
|
||||
MENU_LABEL(CORE_UPDATER_LIST),
|
||||
MENU_LABEL(CORE_MANAGER_LIST),
|
||||
#ifdef HAVE_MIST
|
||||
/* Steam settings */
|
||||
MENU_LABEL(STEAM_SETTINGS),
|
||||
MENU_LABEL(STEAM_RICH_PRESENCE_ENABLE),
|
||||
MENU_LABEL(STEAM_RICH_PRESENCE_FORMAT),
|
||||
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT,
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CORE,
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_SYSTEM,
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM,
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT_CORE,
|
||||
MENU_ENUM_LABEL_VALUE_STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM_CORE,
|
||||
|
||||
/* Steam Core Manager */
|
||||
MENU_LABEL(CORE_MANAGER_STEAM_LIST),
|
||||
MENU_LABEL(CORE_STEAM_INSTALL),
|
||||
MENU_LABEL(CORE_STEAM_UNINSTALL),
|
||||
|
@ -187,7 +187,7 @@ static void handle_discord_join_cb(retro_task_t *task,
|
||||
room->gamename, join_hostname, room->corename, room->subsystem_name);
|
||||
discord_st->connecting = true;
|
||||
if (discord_st->ready)
|
||||
discord_update(DISCORD_PRESENCE_NETPLAY_CLIENT);
|
||||
discord_update(PRESENCE_NETPLAY_CLIENT);
|
||||
}
|
||||
|
||||
finish:
|
||||
@ -261,7 +261,7 @@ static void handle_discord_join_request(const DiscordUser* request)
|
||||
#endif
|
||||
}
|
||||
|
||||
void discord_update(enum discord_presence presence)
|
||||
void discord_update(enum presence presence)
|
||||
{
|
||||
discord_state_t *discord_st = &discord_state_st;
|
||||
#ifdef HAVE_CHEEVOS
|
||||
@ -273,8 +273,8 @@ void discord_update(enum discord_presence presence)
|
||||
|
||||
if (!discord_st->connecting
|
||||
&&
|
||||
( presence == DISCORD_PRESENCE_NONE
|
||||
|| presence == DISCORD_PRESENCE_MENU))
|
||||
( presence == PRESENCE_NONE
|
||||
|| presence == PRESENCE_MENU))
|
||||
{
|
||||
memset(&discord_st->presence,
|
||||
0, sizeof(discord_st->presence));
|
||||
@ -283,7 +283,7 @@ void discord_update(enum discord_presence presence)
|
||||
|
||||
switch (presence)
|
||||
{
|
||||
case DISCORD_PRESENCE_MENU:
|
||||
case PRESENCE_MENU:
|
||||
discord_st->presence.details = msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU);
|
||||
discord_st->presence.largeImageKey = "base";
|
||||
@ -291,7 +291,7 @@ void discord_update(enum discord_presence presence)
|
||||
MENU_ENUM_LABEL_VALUE_NO_CORE);
|
||||
discord_st->presence.instance = 0;
|
||||
break;
|
||||
case DISCORD_PRESENCE_GAME_PAUSED:
|
||||
case PRESENCE_GAME_PAUSED:
|
||||
discord_st->presence.smallImageKey = "paused";
|
||||
discord_st->presence.smallImageText = msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED);
|
||||
@ -302,7 +302,7 @@ void discord_update(enum discord_presence presence)
|
||||
discord_st->start_time);
|
||||
discord_st->presence.startTimestamp = discord_st->pause_time;
|
||||
break;
|
||||
case DISCORD_PRESENCE_GAME:
|
||||
case PRESENCE_GAME:
|
||||
{
|
||||
core_info_t *core_info = NULL;
|
||||
core_info_get_current_core(&core_info);
|
||||
@ -372,7 +372,7 @@ void discord_update(enum discord_presence presence)
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DISCORD_PRESENCE_NETPLAY_HOSTING:
|
||||
case PRESENCE_NETPLAY_HOSTING:
|
||||
{
|
||||
char join_secret[128];
|
||||
struct netplay_room *room = &networking_state_get_ptr()->host_room;
|
||||
@ -394,10 +394,10 @@ void discord_update(enum discord_presence presence)
|
||||
discord_st->presence.partySize = 1;
|
||||
}
|
||||
break;
|
||||
case DISCORD_PRESENCE_NETPLAY_CLIENT:
|
||||
case PRESENCE_NETPLAY_CLIENT:
|
||||
discord_st->presence.partyId = strdup(discord_st->peer_party_id);
|
||||
break;
|
||||
case DISCORD_PRESENCE_NETPLAY_NETPLAY_STOPPED:
|
||||
case PRESENCE_NETPLAY_NETPLAY_STOPPED:
|
||||
{
|
||||
if (!netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL) &&
|
||||
!netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_CONNECTED, NULL))
|
||||
@ -412,16 +412,16 @@ void discord_update(enum discord_presence presence)
|
||||
}
|
||||
break;
|
||||
#ifdef HAVE_CHEEVOS
|
||||
case DISCORD_PRESENCE_RETROACHIEVEMENTS:
|
||||
case PRESENCE_RETROACHIEVEMENTS:
|
||||
if (discord_st->pause_time)
|
||||
return;
|
||||
|
||||
if (rcheevos_get_richpresence(cheevos_richpresence, sizeof(cheevos_richpresence)) > 0)
|
||||
discord_st->presence.details = cheevos_richpresence;
|
||||
presence = DISCORD_PRESENCE_GAME;
|
||||
presence = PRESENCE_GAME;
|
||||
break;
|
||||
#endif
|
||||
case DISCORD_PRESENCE_SHUTDOWN:
|
||||
case PRESENCE_SHUTDOWN:
|
||||
discord_st->presence.partyId = NULL;
|
||||
discord_st->presence.partyMax = 0;
|
||||
discord_st->presence.partySize = 0;
|
||||
|
@ -25,24 +25,7 @@
|
||||
|
||||
#include <discord_rpc.h>
|
||||
#include "../deps/discord-rpc/include/discord_rpc.h"
|
||||
|
||||
enum discord_presence
|
||||
{
|
||||
DISCORD_PRESENCE_NONE = 0,
|
||||
DISCORD_PRESENCE_MENU,
|
||||
DISCORD_PRESENCE_GAME,
|
||||
DISCORD_PRESENCE_GAME_PAUSED,
|
||||
DISCORD_PRESENCE_NETPLAY_HOSTING,
|
||||
DISCORD_PRESENCE_NETPLAY_CLIENT,
|
||||
DISCORD_PRESENCE_NETPLAY_NETPLAY_STOPPED,
|
||||
DISCORD_PRESENCE_RETROACHIEVEMENTS,
|
||||
DISCORD_PRESENCE_SHUTDOWN
|
||||
};
|
||||
|
||||
typedef struct discord_userdata
|
||||
{
|
||||
enum discord_presence status;
|
||||
} discord_userdata_t;
|
||||
#include "presence.h"
|
||||
|
||||
/* The Discord API specifies these variables:
|
||||
- userId --------- char[24] - the userId of the player asking to join
|
||||
@ -76,7 +59,7 @@ struct discord_state
|
||||
|
||||
typedef struct discord_state discord_state_t;
|
||||
|
||||
void discord_update(enum discord_presence presence);
|
||||
void discord_update(enum presence presence);
|
||||
|
||||
bool discord_is_ready(void);
|
||||
|
||||
|
@ -45,6 +45,9 @@
|
||||
#include <string/stdstring.h>
|
||||
#include <file/file_path.h>
|
||||
|
||||
#ifdef HAVE_PRESENCE
|
||||
#include "../presence.h"
|
||||
#endif
|
||||
#ifdef HAVE_DISCORD
|
||||
#include "../discord.h"
|
||||
#endif
|
||||
@ -3965,13 +3968,10 @@ void netplay_hangup(netplay_t *netplay,
|
||||
else
|
||||
{
|
||||
dmsg = msg_hash_to_str(MSG_NETPLAY_CLIENT_HANGUP);
|
||||
#ifdef HAVE_DISCORD
|
||||
if (discord_state_get_ptr()->inited)
|
||||
{
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_NETPLAY_NETPLAY_STOPPED;
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
}
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t userdata;
|
||||
userdata.status = PRESENCE_NETPLAY_NETPLAY_STOPPED;
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
#endif
|
||||
netplay->is_connected = false;
|
||||
}
|
||||
@ -7861,13 +7861,10 @@ static void netplay_announce_cb(retro_task_t *task,
|
||||
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
}
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
if (discord_state_get_ptr()->inited)
|
||||
{
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_NETPLAY_HOSTING;
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
}
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t userdata;
|
||||
userdata.status = PRESENCE_NETPLAY_HOSTING;
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -8156,13 +8153,10 @@ static void netplay_disconnect(netplay_t *netplay)
|
||||
|
||||
deinit_netplay();
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
if (discord_state_get_ptr()->inited)
|
||||
{
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_NETPLAY_NETPLAY_STOPPED;
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
}
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t userdata;
|
||||
userdata.status = PRESENCE_NETPLAY_NETPLAY_STOPPED;
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -8442,13 +8436,10 @@ bool netplay_driver_ctl(enum rarch_netplay_ctl_state state, void *data)
|
||||
|
||||
case RARCH_NETPLAY_CTL_DISABLE:
|
||||
net_st->netplay_enabled = false;
|
||||
#ifdef HAVE_DISCORD
|
||||
if (discord_state_get_ptr()->inited)
|
||||
{
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_NETPLAY_NETPLAY_STOPPED;
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
}
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t userdata;
|
||||
userdata.status = PRESENCE_NETPLAY_NETPLAY_STOPPED;
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
#endif
|
||||
goto done;
|
||||
|
||||
|
22
network/presence.c
Normal file
22
network/presence.c
Normal file
@ -0,0 +1,22 @@
|
||||
#include "presence.h"
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
#include "discord.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MIST
|
||||
#include "steam/steam.h"
|
||||
#endif
|
||||
|
||||
void presence_update(enum presence presence)
|
||||
{
|
||||
#ifdef HAVE_DISCORD
|
||||
discord_state_t *discord_st = discord_state_get_ptr();
|
||||
|
||||
if (discord_st->ready)
|
||||
discord_update(presence);
|
||||
#endif
|
||||
#ifdef HAVE_MIST
|
||||
steam_update_presence(presence, false);
|
||||
#endif
|
||||
}
|
24
network/presence.h
Normal file
24
network/presence.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef __RARCH_PRESENCE_H
|
||||
#define __RARCH_PRESENCE_H
|
||||
|
||||
enum presence
|
||||
{
|
||||
PRESENCE_NONE = 0,
|
||||
PRESENCE_MENU,
|
||||
PRESENCE_GAME,
|
||||
PRESENCE_GAME_PAUSED,
|
||||
PRESENCE_NETPLAY_HOSTING,
|
||||
PRESENCE_NETPLAY_CLIENT,
|
||||
PRESENCE_NETPLAY_NETPLAY_STOPPED,
|
||||
PRESENCE_RETROACHIEVEMENTS,
|
||||
PRESENCE_SHUTDOWN
|
||||
};
|
||||
|
||||
typedef struct presence_userdata
|
||||
{
|
||||
enum presence status;
|
||||
} presence_userdata_t;
|
||||
|
||||
void presence_update(enum presence presence);
|
||||
|
||||
#endif /* __RARCH_PRESENCE_H */
|
59
retroarch.c
59
retroarch.c
@ -102,6 +102,9 @@
|
||||
#include "play_feature_delivery/play_feature_delivery.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PRESENCE
|
||||
#include "network/presence.h"
|
||||
#endif
|
||||
#ifdef HAVE_DISCORD
|
||||
#include "network/discord.h"
|
||||
#endif
|
||||
@ -1948,15 +1951,12 @@ bool command_event(enum event_command cmd, void *data)
|
||||
if (!task_push_start_dummy_core(&content_info))
|
||||
return false;
|
||||
}
|
||||
#ifdef HAVE_DISCORD
|
||||
if (discord_state_get_ptr()->inited)
|
||||
{
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_NETPLAY_NETPLAY_STOPPED;
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
userdata.status = DISCORD_PRESENCE_MENU;
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
}
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t userdata;
|
||||
userdata.status = PRESENCE_NETPLAY_NETPLAY_STOPPED;
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
userdata.status = PRESENCE_MENU;
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
#endif
|
||||
#ifdef HAVE_DYNAMIC
|
||||
path_clear(RARCH_PATH_CORE);
|
||||
@ -3342,17 +3342,15 @@ bool command_event(enum event_command cmd, void *data)
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case CMD_EVENT_DISCORD_UPDATE:
|
||||
case CMD_EVENT_PRESENCE_UPDATE:
|
||||
{
|
||||
#ifdef HAVE_DISCORD
|
||||
discord_userdata_t *userdata = NULL;
|
||||
discord_state_t *discord_st = discord_state_get_ptr();
|
||||
if (!data || !discord_st->ready)
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t *userdata = NULL;
|
||||
if (!data)
|
||||
return false;
|
||||
|
||||
userdata = (discord_userdata_t*)data;
|
||||
if (discord_st->ready)
|
||||
discord_update(userdata->status);
|
||||
userdata = (presence_userdata_t*)data;
|
||||
presence_update(userdata->status);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
@ -5497,17 +5495,16 @@ bool retroarch_main_init(int argc, char *argv[])
|
||||
|
||||
if (command_event(CMD_EVENT_DISCORD_INIT, NULL))
|
||||
discord_st->inited = true;
|
||||
|
||||
if (discord_st->inited)
|
||||
{
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_MENU;
|
||||
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t userdata;
|
||||
userdata.status = PRESENCE_MENU;
|
||||
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_AUDIOMIXER)
|
||||
audio_driver_load_system_sounds();
|
||||
#endif
|
||||
@ -6013,14 +6010,14 @@ bool retroarch_main_quit(void)
|
||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||
video_driver_state_t*video_st = video_state_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t userdata;
|
||||
userdata.status = PRESENCE_SHUTDOWN;
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
#endif
|
||||
#ifdef HAVE_DISCORD
|
||||
discord_state_t *discord_st = discord_state_get_ptr();
|
||||
if (discord_st->inited)
|
||||
{
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_SHUTDOWN;
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
}
|
||||
if (discord_st->ready)
|
||||
{
|
||||
Discord_ClearPresence();
|
||||
|
26
runloop.c
26
runloop.c
@ -106,6 +106,9 @@
|
||||
#include "play_feature_delivery/play_feature_delivery.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PRESENCE
|
||||
#include "network/presence.h"
|
||||
#endif
|
||||
#ifdef HAVE_DISCORD
|
||||
#include "network/discord.h"
|
||||
#endif
|
||||
@ -5457,8 +5460,8 @@ void runloop_runahead_clear_variables(runloop_state_t *runloop_st)
|
||||
|
||||
void runloop_pause_checks(void)
|
||||
{
|
||||
#ifdef HAVE_DISCORD
|
||||
discord_userdata_t userdata;
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t userdata;
|
||||
#endif
|
||||
runloop_state_t *runloop_st = &runloop_state;
|
||||
bool is_paused = runloop_st->paused;
|
||||
@ -5483,9 +5486,9 @@ void runloop_pause_checks(void)
|
||||
if (!is_idle)
|
||||
video_driver_cached_frame();
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
userdata.status = DISCORD_PRESENCE_GAME_PAUSED;
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
#ifdef HAVE_PRESENCE
|
||||
userdata.status = PRESENCE_GAME_PAUSED;
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_LAKKA_SWITCH
|
||||
@ -6162,11 +6165,11 @@ static bool display_menu_libretro(
|
||||
|
||||
if (runloop_idle)
|
||||
{
|
||||
#ifdef HAVE_DISCORD
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_GAME_PAUSED;
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t userdata;
|
||||
userdata.status = PRESENCE_GAME_PAUSED;
|
||||
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
@ -7692,9 +7695,8 @@ int runloop_iterate(void)
|
||||
#ifdef HAVE_CHEATS
|
||||
cheat_manager_apply_retro_cheats();
|
||||
#endif
|
||||
#ifdef HAVE_DISCORD
|
||||
if (discord_st->inited && discord_st->ready)
|
||||
discord_update(DISCORD_PRESENCE_GAME);
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_update(PRESENCE_GAME);
|
||||
#endif
|
||||
|
||||
/* Restores analog D-pad binds temporarily overridden. */
|
||||
|
106
steam/steam.c
106
steam/steam.c
@ -9,6 +9,7 @@
|
||||
#include "../menu/menu_entries.h"
|
||||
#include "../retroarch.h"
|
||||
#include "../runloop.h"
|
||||
#include "paths.h"
|
||||
#include "verbosity.h"
|
||||
|
||||
#include "steam.h"
|
||||
@ -16,6 +17,7 @@
|
||||
static bool mist_initialized = false;
|
||||
static bool mist_showing_osk = false;
|
||||
static steam_core_dlc_list_t *mist_dlc_list = NULL;
|
||||
static enum presence last_presence = PRESENCE_NONE;
|
||||
|
||||
void str_to_lower(char *str)
|
||||
{
|
||||
@ -43,7 +45,9 @@ void steam_poll(void)
|
||||
MistCallbackMsg callback;
|
||||
steam_core_dlc_list_t *core_dlc_list;
|
||||
bool has_callback = false;
|
||||
settings_t* settings = config_get_ptr();
|
||||
static bool has_poll_errored = false;
|
||||
static bool has_rich_presence_enabled = false;
|
||||
|
||||
result = mist_poll();
|
||||
if (MIST_IS_ERROR(result))
|
||||
@ -79,6 +83,13 @@ void steam_poll(void)
|
||||
|
||||
result = mist_next_callback(&has_callback, &callback);
|
||||
}
|
||||
|
||||
/* Ensure rich presence state is correct */
|
||||
if(settings->bools.steam_rich_presence_enable != has_rich_presence_enabled)
|
||||
{
|
||||
steam_update_presence(last_presence, true);
|
||||
has_rich_presence_enabled = settings->bools.steam_rich_presence_enable;
|
||||
}
|
||||
}
|
||||
|
||||
steam_core_dlc_list_t *steam_core_dlc_list_new(size_t count)
|
||||
@ -350,6 +361,101 @@ bool steam_has_osk_open(void)
|
||||
return mist_showing_osk;
|
||||
}
|
||||
|
||||
void steam_update_presence(enum presence presence, bool force)
|
||||
{
|
||||
settings_t* settings = config_get_ptr();
|
||||
|
||||
if (!mist_initialized)
|
||||
return;
|
||||
|
||||
/* Avoid spamming steam with presence updates */
|
||||
if (presence == last_presence && !force)
|
||||
return;
|
||||
last_presence = presence;
|
||||
|
||||
/* Ensure rich presence is enabled */
|
||||
if(!settings->bools.steam_rich_presence_enable)
|
||||
{
|
||||
mist_steam_friends_clear_rich_presence();
|
||||
return;
|
||||
}
|
||||
|
||||
switch (presence)
|
||||
{
|
||||
case PRESENCE_MENU:
|
||||
mist_steam_friends_set_rich_presence("steam_display", "#Status_InMenu");
|
||||
break;
|
||||
case PRESENCE_GAME_PAUSED:
|
||||
mist_steam_friends_set_rich_presence("steam_display", "#Status_Paused");
|
||||
break;
|
||||
case PRESENCE_GAME:
|
||||
{
|
||||
const char *label = NULL;
|
||||
const struct playlist_entry *entry = NULL;
|
||||
core_info_t *core_info = NULL;
|
||||
playlist_t *current_playlist = playlist_get_cached();
|
||||
char content[PATH_MAX_LENGTH] = {0};
|
||||
|
||||
core_info_get_current_core(&core_info);
|
||||
|
||||
if (current_playlist)
|
||||
{
|
||||
playlist_get_index_by_path(
|
||||
current_playlist,
|
||||
path_get(RARCH_PATH_CONTENT),
|
||||
&entry);
|
||||
|
||||
if (entry && !string_is_empty(entry->label))
|
||||
label = entry->label;
|
||||
}
|
||||
|
||||
if (!label)
|
||||
label = path_basename(path_get(RARCH_PATH_BASENAME));
|
||||
|
||||
switch(settings->uints.steam_rich_presence_format)
|
||||
{
|
||||
case STEAM_RICH_PRESENCE_FORMAT_CONTENT:
|
||||
strncpy(content, label, sizeof(content) - 1);
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_CORE:
|
||||
strncpy(content, core_info ? core_info->core_name : "N/A", sizeof(content) - 1);
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_SYSTEM:
|
||||
strncpy(content, core_info ? core_info->systemname : "N/A", sizeof(content) - 1);
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM:
|
||||
snprintf(content, sizeof(content) - 1, "%s (%s)",
|
||||
label,
|
||||
core_info ? core_info->systemname : "N/A");
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_CONTENT_CORE:
|
||||
snprintf(content, sizeof(content) - 1, "%s (%s)",
|
||||
label,
|
||||
core_info ? core_info->core_name : "N/A");
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM_CORE:
|
||||
snprintf(content, sizeof(content) - 1, "%s (%s - %s)",
|
||||
label,
|
||||
core_info ? core_info->systemname : "N/A",
|
||||
core_info ? core_info->core_name : "N/A");
|
||||
break;
|
||||
case STEAM_RICH_PRESENCE_FORMAT_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
mist_steam_friends_set_rich_presence("content", content);
|
||||
mist_steam_friends_set_rich_presence("steam_display",
|
||||
settings->uints.steam_rich_presence_format != STEAM_RICH_PRESENCE_FORMAT_NONE
|
||||
? "#Status_RunningContent" : "#Status_Running" );
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void steam_deinit(void)
|
||||
{
|
||||
MistResult result;
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <mist.h>
|
||||
|
||||
#include "core_info.h"
|
||||
#include "network/presence.h"
|
||||
|
||||
#define MIST_UNPACK_RESULT(result) MIST_RESULT_CODE(result), MIST_ERROR(result)
|
||||
|
||||
@ -23,6 +24,18 @@ typedef struct
|
||||
size_t count;
|
||||
} steam_core_dlc_list_t;
|
||||
|
||||
enum steam_rich_presence_running_format
|
||||
{
|
||||
STEAM_RICH_PRESENCE_FORMAT_NONE = 0,
|
||||
STEAM_RICH_PRESENCE_FORMAT_CONTENT,
|
||||
STEAM_RICH_PRESENCE_FORMAT_CORE,
|
||||
STEAM_RICH_PRESENCE_FORMAT_SYSTEM,
|
||||
STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM,
|
||||
STEAM_RICH_PRESENCE_FORMAT_CONTENT_CORE,
|
||||
STEAM_RICH_PRESENCE_FORMAT_CONTENT_SYSTEM_CORE,
|
||||
STEAM_RICH_PRESENCE_FORMAT_LAST
|
||||
};
|
||||
|
||||
void steam_init(void);
|
||||
|
||||
void steam_deinit(void);
|
||||
@ -41,6 +54,8 @@ void steam_uninstall_core_dlc(steam_core_dlc_t *core_dlc);
|
||||
bool steam_open_osk(void);
|
||||
bool steam_has_osk_open(void);
|
||||
|
||||
void steam_update_presence(enum presence presence, bool force);
|
||||
|
||||
/* Located in tasks/task_steam.c */
|
||||
void task_push_steam_core_dlc_install(AppId app_id, const char *name);
|
||||
|
||||
|
@ -103,8 +103,8 @@
|
||||
#include "../paths.h"
|
||||
#include "../verbosity.h"
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
#include "../network/discord.h"
|
||||
#ifdef HAVE_PRESENCE
|
||||
#include "../network/presence.h"
|
||||
#endif
|
||||
|
||||
#define MAX_ARGS 32
|
||||
@ -2456,15 +2456,12 @@ static bool task_load_content_internal(
|
||||
if (firmware_update_status(&content_ctx))
|
||||
goto end;
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
if (discord_state_get_ptr()->inited)
|
||||
{
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_NETPLAY_NETPLAY_STOPPED;
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
userdata.status = DISCORD_PRESENCE_MENU;
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
}
|
||||
#ifdef HAVE_PRESENCE
|
||||
presence_userdata_t userdata;
|
||||
userdata.status = PRESENCE_NETPLAY_NETPLAY_STOPPED;
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
userdata.status = PRESENCE_MENU;
|
||||
command_event(CMD_EVENT_PRESENCE_UPDATE, &userdata);
|
||||
#endif
|
||||
|
||||
/* Loads content into currently selected core. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user