Shutdown DiscordRPC when discordrp cvar is set to Off

This commit is contained in:
Indev 2023-09-11 13:17:12 +03:00 committed by NepDisk
parent 8646a48d19
commit e0feb055f1
2 changed files with 37 additions and 2 deletions

View file

@ -37,7 +37,9 @@
// length of IP strings
#define IP_SIZE 21
consvar_t cv_discordrp = CVAR_INIT ("discordrp", "On", CV_SAVE|CV_CALL, CV_OnOff, DRPC_UpdatePresence);
static void Discordrp_OnChange(void);
consvar_t cv_discordrp = CVAR_INIT ("discordrp", "On", CV_SAVE|CV_CALL, CV_OnOff, Discordrp_OnChange);
consvar_t cv_discordstreamer = CVAR_INIT ("discordstreamer", "Off", CV_SAVE, CV_OnOff, NULL);
consvar_t cv_discordasks = CVAR_INIT ("discordasks", "Yes", CV_SAVE|CV_CALL, CV_YesNo, DRPC_UpdatePresence);
@ -330,10 +332,36 @@ void DRPC_Init(void)
handlers.joinRequest = DRPC_HandleJoinRequest;
Discord_Initialize(DISCORD_APPID, &handlers, 1, NULL);
I_AddExitFunc(Discord_Shutdown);
I_AddExitFunc(DRPC_Shutdown);
DRPC_UpdatePresence();
}
void DRPC_Shutdown(void)
{
if (!drpc_init)
{
CONS_Printf("DiscordRPC never started\n");
return;
}
CONS_Printf("Shutting down DiscordRPC\n");
Discord_Shutdown();
drpc_init = false;
}
static void Discordrp_OnChange(void)
{
if (cv_discordrp.value)
{
DRPC_UpdatePresence();
}
else
{
DRPC_Shutdown();
}
}
/*--------------------------------------------------
static void DRPC_GotServerIP(UINT32 address)

View file

@ -68,6 +68,13 @@ void DRPC_RemoveRequest(discordRequest_t *removeRequest);
void DRPC_Init(void);
/*--------------------------------------------------
void DRPC_Shutdown(void);
Shutdown Discord Rich Presence if it was started at all.
--------------------------------------------------*/
void DRPC_Shutdown(void);
/*--------------------------------------------------
void DRPC_UpdatePresence(void);