diff --git a/command.c b/command.c index 837929f506..01ad56ccf1 100644 --- a/command.c +++ b/command.c @@ -2477,6 +2477,13 @@ TODO: Add a setting for these tweaks */ if (!is_idle) video_driver_cached_frame(); + +#ifdef HAVE_DISCORD + discord_userdata_t userdata; + userdata.status = DISCORD_PRESENCE_GAME_PAUSED; + + command_event(CMD_EVENT_DISCORD_UPDATE, &userdata); +#endif } else { diff --git a/discord/discord.c b/discord/discord.c index 387a5b6cbb..a3dadd4e1d 100644 --- a/discord/discord.c +++ b/discord/discord.c @@ -25,11 +25,15 @@ #include "../msg_hash.h" -static const char* APPLICATION_ID = "475456035851599874"; +//static const char* APPLICATION_ID = "475456035851599874"; +static const char* APPLICATION_ID = "479875712363528207"; static int FrustrationLevel = 0; + static int64_t start_time = 0; +static int64_t pause_time = 0; static bool discord_ready = false; +static bool in_menu = false; static unsigned discord_status = 0; DiscordRichPresence discord_presence; @@ -75,7 +79,10 @@ static void handle_discord_join_request(const DiscordUser* request) void discord_update(enum discord_presence presence) { rarch_system_info_t *system = runloop_get_system_info(); - core_info_t *core_info = NULL; + core_info_t *core_info = NULL; + bool skip = false; + + core_info_get_current_core(&core_info); if (!discord_ready) return; @@ -85,25 +92,33 @@ void discord_update(enum discord_presence presence) (discord_status == presence)) return; - RARCH_LOG("[Discord] updating (%d)\n", presence); - memset(&discord_presence, 0, sizeof(discord_presence)); switch (presence) { case DISCORD_PRESENCE_MENU: - discord_presence.state = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU); - discord_presence.largeImageKey = "base"; - discord_presence.instance = 0; - discord_presence.startTimestamp = start_time; - break; - case DISCORD_PRESENCE_GAME: - core_info_get_current_core(&core_info); + discord_presence.details = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU); + discord_presence.largeImageKey = "base"; + discord_presence.largeImageText = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_CORE); + discord_presence.instance = 0; + in_menu = true; + break; + case DISCORD_PRESENCE_GAME_PAUSED: + discord_presence.smallImageKey = "paused"; + discord_presence.smallImageText = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED); + discord_presence.details = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED); + + pause_time = time(0); + skip = true; + + if (in_menu) + break; + case DISCORD_PRESENCE_GAME: if (core_info) { - const char *system_name = string_replace_substring( - string_to_lower(core_info->core_name), " ", "_"); + const char *core_name = core_info->core_name ? core_info->core_name : "core"; + const char *system_name = string_replace_substring(string_to_lower((char *)core_name), " ", "_"); char *label = NULL; playlist_t *current_playlist = playlist_get_cached(); @@ -114,20 +129,69 @@ void discord_update(enum discord_presence presence) if (!label) label = (char *)path_basename(path_get(RARCH_PATH_BASENAME)); - - start_time = time(0); - discord_presence.state = core_info->display_name; - discord_presence.details = label; #if 1 - RARCH_LOG("[Discord] system name: %s\n", system_name); + RARCH_LOG("[Discord] current core: %s\n", system_name); RARCH_LOG("[Discord] current content: %s\n", label); #endif - discord_presence.largeImageKey = system_name; - discord_presence.smallImageKey = "base"; - discord_presence.instance = 0; - discord_presence.startTimestamp = start_time; + /* + At the present time, there is no consistent or clean way to present what platform + or core the user is playing on/with. If we were to present the platform as an icon, + some cores have multiple platforms, such as Dolphin with the GC or Wii, or blueMSX + with the MSX or MSX2. The libretro API has no way of determining what platform a + selected content is associated with; it only knows what core it's playing under. + The platform is determined by the core itself during initialization, not viewable + by the libretro API. A solution to this problem would be associating the content + with the first platform available in the core's information file, but that solution + doesn't work when someone sees another users playing Super Mario Galaxy with a + GameCube icon. It's not good enough. Another solution would be exposing what + platform is associated with inside the core itself, visible through the libretro + API, but this would require updating every libretro core to support this feature, + and the support would be too slow and limited for it to really work as a solution. + If we were to present the core as an icon, there are a few options available, and + none of them are desirable either. If we were to provide an icon for each core based + on that core's logo or name, then we'd need new assets for every single libretro + core available, AND each asset would need to be consistent with each other, in a + similar vein to the XMB themes of RetroArch, which would be another massive + undertaking. If we were to provide an icon for each core based on that core's + platform, then we have the same issue as earlier, except this time we're additionally + limited by the amount of assets a Discord RPC application is allowed to have: 150. + There are currently 173 core information files available within RetroArch, which goes + over that number by a bit. Now if that were determined by platform instead of core, + that number goes significantly down as there are many cores with multiple platforms, + but then we have the issue as described earlier. + + Because of this dilemma, for now the provided icon for the In-Game status will be the + standard/default "core" icon, at least we can come up with a solution that's clean + and consistent. When such a time presents itself, the below line will be uncommented. + */ + + //discord_presence.largeImageKey = system_name; + discord_presence.largeImageKey = "core"; + + if (core_info->display_name) + discord_presence.largeImageText = core_info->display_name; + + if (in_menu) + start_time = time(0); + else + start_time = start_time + difftime(time(0), pause_time); + + RARCH_LOG("%d\n", start_time); + + if (!skip) + { + discord_presence.smallImageKey = "playing"; + discord_presence.smallImageText = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING); + discord_presence.startTimestamp = start_time; + discord_presence.details = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME); + } + + discord_presence.state = label; + discord_presence.instance = 0; } + + in_menu = false; break; case DISCORD_PRESENCE_NETPLAY_HOSTING: case DISCORD_PRESENCE_NETPLAY_CLIENT: @@ -135,6 +199,12 @@ void discord_update(enum discord_presence presence) /* TODO/FIXME */ break; } + + if (in_menu && skip) + return; + + RARCH_LOG("[Discord] updating (%d)\n", presence); + Discord_UpdatePresence(&discord_presence); discord_status = presence; } diff --git a/discord/discord.h b/discord/discord.h index 8b5c96050b..84aa87f8ad 100644 --- a/discord/discord.h +++ b/discord/discord.h @@ -34,6 +34,7 @@ enum discord_presence { DISCORD_PRESENCE_MENU = 0, DISCORD_PRESENCE_GAME, + DISCORD_PRESENCE_GAME_PAUSED, DISCORD_PRESENCE_CHEEVO_UNLOCKED, DISCORD_PRESENCE_NETPLAY_HOSTING, DISCORD_PRESENCE_NETPLAY_CLIENT diff --git a/intl/msg_hash_ar.h b/intl/msg_hash_ar.h index 3653d191b7..881210a828 100644 --- a/intl/msg_hash_ar.h +++ b/intl/msg_hash_ar.h @@ -3456,9 +3456,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Enable background filler thickness") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "For 15 kHz CRT displays only. Attempts to use exact core/game resolution and refresh rate.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "When CRT SwitchRes is enabled, force ultrawide horizontal resolution to minimize mode switching.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Show Rewind Settings") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3517,6 +3517,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Clear") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h index 2b0cda9c45..c8ff8960de 100644 --- a/intl/msg_hash_chs.h +++ b/intl/msg_hash_chs.h @@ -3240,9 +3240,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Enable background filler thickness") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "For 15 kHz CRT displays only. Attempts to use exact core/game resolution and refresh rate.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "When CRT SwitchRes is enabled, force ultrawide horizontal resolution to minimize mode switching.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Show Rewind Settings") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3301,6 +3301,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Clear") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h index fbf997e55e..dcc7565720 100644 --- a/intl/msg_hash_cht.h +++ b/intl/msg_hash_cht.h @@ -3232,9 +3232,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Enable background filler thickness") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "For 15 kHz CRT displays only. Attempts to use exact core/game resolution and refresh rate.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "When CRT SwitchRes is enabled, force ultrawide horizontal resolution to minimize mode switching.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Show Rewind Settings") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3293,6 +3293,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Clear") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index 69e95be72a..239899abab 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -3342,9 +3342,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Enable background filler thickness") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "For 15 kHz CRT displays only. Attempts to use exact core/game resolution and refresh rate.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "When CRT SwitchRes is enabled, force ultrawide horizontal resolution to minimize mode switching.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Show Rewind Settings") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3403,6 +3403,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Clear") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index bc2fe52fa5..e157edfc74 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -3107,9 +3107,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Enable background filler thickness") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "For 15 kHz CRT displays only. Attempts to use exact core/game resolution and refresh rate.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "When CRT SwitchRes is enabled, force ultrawide horizontal resolution to minimize mode switching.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Show Rewind Settings") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3168,6 +3168,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Clear") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index 7341519c4b..4eba0b39b9 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -6578,6 +6578,22 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "En-Menú" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "En-Juego" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "En-Juego (Pausado)" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Jugando" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Pausado" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Activar Discord" diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index d0b3503a0b..b5d3ab766a 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -3266,9 +3266,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Enable background filler thickness") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "For 15 kHz CRT displays only. Attempts to use exact core/game resolution and refresh rate.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "When CRT SwitchRes is enabled, force ultrawide horizontal resolution to minimize mode switching.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Show Rewind Settings") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3327,6 +3327,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Clear") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h index bb5b06fdbd..ec334aef13 100644 --- a/intl/msg_hash_it.h +++ b/intl/msg_hash_it.h @@ -3326,9 +3326,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Abilita lo spessore del riempimento dello sfondo") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "Solo per schermi CRT a 15 kHz. Tenta di utilizzare la risoluzione esatta core/gioco e la frequenza di aggiornamento.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "Quando CRT SwitchRes è abilitato, forza la risoluzione orizzontale ultrawide per minimizzare il cambio di modalità.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Risoluzione") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Risoluzione") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Mostra impostazioni di riavvolgimento") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3387,6 +3387,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Cancella") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Abilita Discord" diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index 73b6cf9f35..a7813f2e9a 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -3662,6 +3662,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "クリア") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Discordを有効" diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h index 31c7e48614..f867b18e6c 100644 --- a/intl/msg_hash_ko.h +++ b/intl/msg_hash_ko.h @@ -3227,9 +3227,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Enable background filler thickness") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "For 15 kHz CRT displays only. Attempts to use exact core/game resolution and refresh rate.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "When CRT SwitchRes is enabled, force ultrawide horizontal resolution to minimize mode switching.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Show Rewind Settings") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3288,6 +3288,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Clear") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 1077bb08a3..1dac8eef33 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1141,10 +1141,10 @@ MSG_HASH(MENU_ENUM_LABEL_USE_THIS_DIRECTORY, "use_this_directory") MSG_HASH(MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE, "video_allow_rotate") -MSG_HASH(MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION, - "crt_switch_resolution") -MSG_HASH(MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_SUPER, - "crt_switch_resolution_super") +MSG_HASH(MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION, + "crt_switch_resolution") +MSG_HASH(MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_SUPER, + "crt_switch_resolution_super") MSG_HASH(MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO, "video_aspect_ratio") MSG_HASH(MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO_AUTO, @@ -1545,6 +1545,14 @@ MSG_HASH(MENU_ENUM_LABEL_DEFERRED_QUICK_MENU_OVERRIDE_OPTIONS, "deferred_quick_menu_override_options") MSG_HASH(MENU_ENUM_LABEL_DISCORD_IN_MENU, "discord_in_menu") +MSG_HASH(MENU_ENUM_LABEL_DISCORD_IN_GAME, + "discord_in_game") +MSG_HASH(MENU_ENUM_LABEL_DISCORD_IN_GAME_PAUSED, + "discord_in_game_paused") +MSG_HASH(MENU_ENUM_LABEL_DISCORD_STATUS_PLAYING, + "discord_status_playing") +MSG_HASH(MENU_ENUM_LABEL_DISCORD_STATUS_PAUSED, + "discord_status_paused") MSG_HASH(MENU_ENUM_LABEL_MIDI_INPUT, "midi_input") MSG_HASH(MENU_ENUM_LABEL_MIDI_OUTPUT, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index 4fcbdd1f8a..63f5d9db7a 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -3109,9 +3109,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Enable background filler thickness") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "For 15 kHz CRT displays only. Attempts to use exact core/game resolution and refresh rate.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "When CRT SwitchRes is enabled, force ultrawide horizontal resolution to minimize mode switching.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Show Rewind Settings") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3170,6 +3170,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Clear") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/intl/msg_hash_pl.h b/intl/msg_hash_pl.h index e929c3004e..a5f446850f 100644 --- a/intl/msg_hash_pl.h +++ b/intl/msg_hash_pl.h @@ -3524,10 +3524,10 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, "Włącz grubość wypełniacza") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Włącz grubość wypełniacza tła") -MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "Tylko dla wyświetlaczy CRT 15 kHz. Próby użycia dokładnej rozdzielczości rdzenia/gry i częstotliwości odświeżania.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT Przełącz rozdzielczość") -MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "Po włączeniu przełączników CRT wymuś ultrafioletową rozdzielczość poziomą, aby zminimalizować przełączanie trybu.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super rozdzielczość") +MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "Tylko dla wyświetlaczy CRT 15 kHz. Próby użycia dokładnej rozdzielczości rdzenia/gry i częstotliwości odświeżania.") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT Przełącz rozdzielczość") +MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "Po włączeniu przełączników CRT wymuś ultrafioletową rozdzielczość poziomą, aby zminimalizować przełączanie trybu.") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super rozdzielczość") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Pokaż ustawienia przewijania") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3586,6 +3586,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Oczyść") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "W Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "W Grze") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "W Grze (Wstrzymano)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Gra") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Wstrzymano") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Włącz Discord" diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h index 1ce0e087c4..95d3fb5769 100644 --- a/intl/msg_hash_pt_br.h +++ b/intl/msg_hash_pt_br.h @@ -2056,7 +2056,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_HELP_LIST, MSG_HASH(MSG_ADDED_TO_FAVORITES, "Adicionado aos favoritos") MSG_HASH(MSG_RESET_CORE_ASSOCIATION, - "A associação do núcleo de entrada da lista de reprodução foi redefinida.") + "A associação do núcleo de entrada da lista de reprodução foi redefinida.") MSG_HASH(MSG_APPENDED_DISK, "Disco anexado") MSG_HASH(MSG_APPLICATION_DIR, @@ -3561,7 +3561,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU, MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_SETTINGS, "Configurações do Mixer") MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_MIXER_SETTINGS, - "Visualizar e/ou modificar as configurações do mixer de áudio.") + "Visualizar e/ou modificar as configurações do mixer de áudio.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_INFO, "Informação") MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_FILE, @@ -3724,6 +3724,14 @@ MSG_HASH(MENU_ENUM_SUBLABEL_ACHIEVEMENT_RESUME, "Continuar conquistas para a sessão atual (Esta ação desabilitará Estados de Jogos, Trapaças, Rebobinagem, Pausa e Câmera Lenta e reiniciará o jogo atual).") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "No Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "No Jogo") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "No Jogo (Pausado)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Jogando") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Pausado") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Habilitar o Discord" diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h index b79ce142cf..c20eaff54a 100644 --- a/intl/msg_hash_pt_pt.h +++ b/intl/msg_hash_pt_pt.h @@ -2505,7 +2505,7 @@ MSG_HASH( MENU_ENUM_SUBLABEL_VIDEO_FORCE_SRGB_DISABLE, "Desativar o suporte de sRGB FBO. Alguns controladores Intel OpenGL para o Windows possuem problemas de vídeo em sRGB FBO, se o mesmo estiver ativo. Ao ativar esta opção, poderá resolver esse problema." ) -MSG_HASH( +MSG_HASH( MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN, "Executar em ecrã completo. Esta definição poderá ser alterada a qualquer momento." ) @@ -3201,9 +3201,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Enable background filler thickness") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "For 15 kHz CRT displays only. Attempts to use exact core/game resolution and refresh rate.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "When CRT SwitchRes is enabled, force ultrawide horizontal resolution to minimize mode switching.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Show Rewind Settings") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3262,6 +3262,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Clear") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index ea5cb8c63f..d18c31f741 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -3326,6 +3326,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Очистить") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Включить Discord") MSG_HASH(MENU_ENUM_SUBLABEL_DISCORD_ALLOW, @@ -3366,14 +3374,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, "Включить толщину заполнителя границ") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Включить фон заполнителя границ") -MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, +MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "Только для 15 кГц CRT дисплеев. Пытается использовать точное разрешение и частоту обновления ядра/игры.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, - "CRT SwitchRes") -MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, + "CRT SwitchRes") +MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "Когда CRT SwitchRes включен, принудительно устанавливает ультраширокое горизонтальное разрешение чтобы минимизировать изменение режима.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, - "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, + "CRT Super Resolution") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS, "Показывать клавиатуру/контроллер на оверлее.") MSG_HASH(MENU_ENUM_SUBLABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 0590f8d60d..97ec622c3d 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -3922,6 +3922,14 @@ MSG_HASH(MENU_ENUM_SUBLABEL_ACHIEVEMENT_RESUME, "Resume achievements for current session (This action will disable savestates, cheats, rewind, pause, and slow-motion and reset the current game).") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h index 71b81df5b7..9cd2329191 100644 --- a/intl/msg_hash_vn.h +++ b/intl/msg_hash_vn.h @@ -3264,9 +3264,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE, "Enable background filler thickness") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, "For 15 kHz CRT displays only. Attempts to use exact core/game resolution and refresh rate.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, "CRT SwitchRes") MSG_HASH(MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER, "When CRT SwitchRes is enabled, force ultrawide horizontal resolution to minimize mode switching.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") +MSG_HASH(MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, "CRT Super Resolution") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND, "Show Rewind Settings") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, @@ -3325,6 +3325,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR, "Clear") MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, "In-Menu") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + "In-Game") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + "In-Game (Paused)") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + "Playing") +MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, + "Paused") MSG_HASH( MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, "Enable Discord" diff --git a/menu/menu_driver.c b/menu/menu_driver.c index a3033c9c36..effc75d61a 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -29,6 +29,10 @@ #include #endif +#ifdef HAVE_DISCORD +#include "discord/discord.h" +#endif + #ifdef HAVE_CONFIG_H #include "../config.h" #endif @@ -458,11 +462,18 @@ bool menu_display_libretro(bool is_idle, input_driver_set_libretro_input_blocked(); core_run(); - input_driver_unset_libretro_input_blocked(); + return true; } +#ifdef HAVE_DISCORD + discord_userdata_t userdata; + userdata.status = DISCORD_PRESENCE_GAME_PAUSED; + + command_event(CMD_EVENT_DISCORD_UPDATE, &userdata); +#endif + if (is_idle) return true; /* Maybe return false here for indication of idleness? */ @@ -1472,7 +1483,7 @@ void menu_display_draw_keyboard( } menu_display_draw_text(font, grid[i], - width/2.0 - (11*ptr_width)/2.0 + (i % 11) + width/2.0 - (11*ptr_width)/2.0 + (i % 11) * ptr_width + ptr_width/2.0, height/2.0 + ptr_height + line_y + font->size / 3, width, height, 0xffffffff, TEXT_ALIGN_CENTER, 1.0f, diff --git a/msg_hash.h b/msg_hash.h index 1a6f5c78f0..52e322ae96 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -426,6 +426,14 @@ enum msg_hash_enums MENU_ENUM_LABEL_DISCORD_IN_MENU, MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, + MENU_ENUM_LABEL_DISCORD_IN_GAME, + MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME, + MENU_ENUM_LABEL_DISCORD_IN_GAME_PAUSED, + MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED, + MENU_ENUM_LABEL_DISCORD_STATUS_PLAYING, + MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING, + MENU_ENUM_LABEL_DISCORD_STATUS_PAUSED, + MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED, MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY, MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY_LOOPED, diff --git a/retroarch.c b/retroarch.c index 90823fe9f3..99005efb16 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2710,7 +2710,7 @@ static enum runloop_state runloop_check_state( } else { - if ( global->menu.prev_action == action && + if ( global->menu.prev_action == action && global->menu.noop_press_time < 200000) /* 250ms */ { global->menu.action_start_time = global->menu.prev_start_time ; @@ -3442,7 +3442,7 @@ int runloop_iterate(unsigned *sleep_ms) end: { retro_time_t to_sleep_ms; - + if (settings->bools.vrr_runloop_enable) { struct retro_system_av_info *av_info = @@ -3467,7 +3467,7 @@ int runloop_iterate(unsigned *sleep_ms) if (!settings->floats.fastforward_ratio && runloop_fastmotion) return 0; - frame_limit_minimum_time = + frame_limit_minimum_time = (retro_time_t)roundf(1000000.0f / (av_info->timing.fps * (runloop_fastmotion ? settings->floats.fastforward_ratio : 1.0f))); }