mirror of
https://github.com/libretro/RetroArch
synced 2025-03-24 22:43:41 +00:00
Add Discord Enable option to Settings -> Privacy
This commit is contained in:
parent
81ce02cf74
commit
ddbc0d53c0
54
command.c
54
command.c
@ -1744,8 +1744,8 @@ void command_playlist_update_write(
|
||||
**/
|
||||
bool command_event(enum event_command cmd, void *data)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
bool boolean = false;
|
||||
static bool discord_inited = false;
|
||||
bool boolean = false;
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
@ -1942,25 +1942,26 @@ bool command_event(enum event_command cmd, void *data)
|
||||
case CMD_EVENT_REINIT_FROM_TOGGLE:
|
||||
retroarch_unset_forced_fullscreen();
|
||||
case CMD_EVENT_REINIT:
|
||||
video_driver_reinit();
|
||||
{
|
||||
video_driver_reinit();
|
||||
{
|
||||
const input_driver_t *input_drv = input_get_ptr();
|
||||
void *input_data = input_get_data();
|
||||
/* Poll input to avoid possibly stale data to corrupt things. */
|
||||
if (input_drv && input_drv->poll)
|
||||
input_drv->poll(input_data);
|
||||
}
|
||||
command_event(CMD_EVENT_GAME_FOCUS_TOGGLE, (void*)(intptr_t)-1);
|
||||
const input_driver_t *input_drv = input_get_ptr();
|
||||
void *input_data = input_get_data();
|
||||
/* Poll input to avoid possibly stale data to corrupt things. */
|
||||
if (input_drv && input_drv->poll)
|
||||
input_drv->poll(input_data);
|
||||
}
|
||||
command_event(CMD_EVENT_GAME_FOCUS_TOGGLE, (void*)(intptr_t)-1);
|
||||
#ifdef HAVE_MENU
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
menu_display_set_framebuffer_dirty_flag();
|
||||
if (settings->bools.video_fullscreen)
|
||||
video_driver_hide_mouse();
|
||||
|
||||
if (menu_driver_is_alive())
|
||||
command_event(CMD_EVENT_VIDEO_SET_BLOCKING_STATE, NULL);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case CMD_EVENT_CHEATS_DEINIT:
|
||||
cheat_manager_state_free();
|
||||
@ -2826,6 +2827,35 @@ TODO: Add a setting for these tweaks */
|
||||
libui_main();
|
||||
#endif
|
||||
break;
|
||||
case CMD_EVENT_DISCORD_INIT:
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!settings->bools.discord_enable)
|
||||
return false;
|
||||
if (discord_inited)
|
||||
return true;
|
||||
|
||||
discord_init();
|
||||
discord_inited = true;
|
||||
}
|
||||
break;
|
||||
case CMD_EVENT_DISCORD_DEINIT:
|
||||
if (!discord_inited)
|
||||
return false;
|
||||
|
||||
discord_shutdown();
|
||||
discord_inited = false;
|
||||
break;
|
||||
case CMD_EVENT_DISCORD_UPDATE:
|
||||
if (!data || !discord_inited)
|
||||
return false;
|
||||
|
||||
{
|
||||
discord_userdata_t *userdata = (discord_userdata_t*)data;
|
||||
discord_update(userdata->status);
|
||||
}
|
||||
break;
|
||||
case CMD_EVENT_NONE:
|
||||
return false;
|
||||
}
|
||||
|
@ -231,6 +231,9 @@ enum event_command
|
||||
CMD_EVENT_DISABLE_OVERRIDES,
|
||||
CMD_EVENT_RESTORE_REMAPS,
|
||||
CMD_EVENT_RESTORE_DEFAULT_SHADER_PRESET,
|
||||
CMD_EVENT_DISCORD_INIT,
|
||||
CMD_EVENT_DISCORD_DEINIT,
|
||||
CMD_EVENT_DISCORD_UPDATE,
|
||||
CMD_EVENT_LIBUI_TEST
|
||||
};
|
||||
|
||||
|
@ -39,6 +39,11 @@ enum discord_presence
|
||||
DISCORD_PRESENCE_NETPLAY_CLIENT
|
||||
};
|
||||
|
||||
typedef struct discord_userdata
|
||||
{
|
||||
enum discord_presence status;
|
||||
} discord_userdata_t;
|
||||
|
||||
void discord_init(void);
|
||||
|
||||
void discord_shutdown(void);
|
||||
|
23
retroarch.c
23
retroarch.c
@ -1382,13 +1382,16 @@ bool retroarch_main_init(int argc, char *argv[])
|
||||
rarch_is_inited = true;
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
{
|
||||
discord_init();
|
||||
discord_is_inited = true;
|
||||
}
|
||||
if (command_event(CMD_EVENT_DISCORD_INIT, NULL))
|
||||
discord_is_inited = true;
|
||||
|
||||
if (discord_is_inited)
|
||||
discord_update(DISCORD_PRESENCE_MENU);
|
||||
{
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_MENU;
|
||||
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (rarch_first_start)
|
||||
@ -2339,8 +2342,7 @@ bool retroarch_main_quit(void)
|
||||
rarch_menu_running_finished();
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
if (discord_is_inited)
|
||||
discord_shutdown();
|
||||
command_event(CMD_EVENT_DISCORD_DEINIT, NULL);
|
||||
discord_is_inited = false;
|
||||
#endif
|
||||
|
||||
@ -3350,7 +3352,12 @@ int runloop_iterate(unsigned *sleep_ms)
|
||||
|
||||
#ifdef HAVE_DISCORD
|
||||
if (discord_is_inited)
|
||||
discord_update(DISCORD_PRESENCE_GAME);
|
||||
{
|
||||
discord_userdata_t userdata;
|
||||
userdata.status = DISCORD_PRESENCE_GAME;
|
||||
|
||||
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 0; i < max_users; i++)
|
||||
|
Loading…
x
Reference in New Issue
Block a user