diff --git a/CMakeLists.txt b/CMakeLists.txt index bffaa11320..2e34d5fe76 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -822,6 +822,7 @@ endif() list(APPEND NativeAppSource android/jni/TestRunner.cpp + UI/DiscordIntegration.cpp UI/NativeApp.cpp UI/BackgroundAudio.cpp UI/DevScreens.cpp diff --git a/UI/DiscordIntegration.cpp b/UI/DiscordIntegration.cpp index 0f7d4e6544..c57a9a6df9 100644 --- a/UI/DiscordIntegration.cpp +++ b/UI/DiscordIntegration.cpp @@ -6,21 +6,23 @@ #include "Core/Config.h" #include "DiscordIntegration.h" -#include "ext/discord-rpc/include/discord_rpc.h" - -// TODO: Enable on more platforms. Make optional. #ifdef _WIN32 -const bool g_DiscordEnabled = true; +#define ENABLE_DISCORD #else -const bool g_DiscordEnabled = true; - #endif + +#ifdef ENABLE_DISCORD +#include "ext/discord-rpc/include/discord_rpc.h" +#endif + +// TODO: Enable on more platforms. Make optional. + Discord g_Discord; static const char *ppsspp_app_id = "423397985041383434"; @@ -35,23 +37,27 @@ Discord::~Discord() { } bool Discord::IsEnabled() const { - return g_DiscordEnabled && g_Config.bDiscordPresence; + return g_Config.bDiscordPresence; } void Discord::Init() { assert(IsEnabled()); assert(!initialized_); +#ifdef ENABLE_DISCORD DiscordEventHandlers eventHandlers{}; eventHandlers.errored = &handleDiscordError; Discord_Initialize(ppsspp_app_id, &eventHandlers, 0, nullptr); +#endif initialized_ = true; } void Discord::Shutdown() { assert(initialized_); +#ifdef ENABLE_DISCORD Discord_Shutdown(); +#endif initialized_ = false; } @@ -67,10 +73,12 @@ void Discord::Update() { } } +#ifdef ENABLE_DISCORD #ifdef DISCORD_DISABLE_IO_THREAD Discord_UpdateConnection(); #endif Discord_RunCallbacks(); +#endif } void Discord::SetPresenceGame(const char *gameTitle) { @@ -81,6 +89,7 @@ void Discord::SetPresenceGame(const char *gameTitle) { Init(); } +#ifdef ENABLE_DISCORD DiscordRichPresence discordPresence{}; discordPresence.state = gameTitle; discordPresence.details = "Playing"; @@ -91,6 +100,7 @@ void Discord::SetPresenceGame(const char *gameTitle) { discordPresence.largeImageKey = "icon_regular_png"; #endif Discord_UpdatePresence(&discordPresence); +#endif } void Discord::SetPresenceMenu() { @@ -101,6 +111,7 @@ void Discord::SetPresenceMenu() { Init(); } +#ifdef ENABLE_DISCORD DiscordRichPresence discordPresence{}; discordPresence.state = "In menu"; discordPresence.details = ""; @@ -111,4 +122,5 @@ void Discord::SetPresenceMenu() { discordPresence.largeImageKey = "icon_regular_png"; #endif Discord_UpdatePresence(&discordPresence); +#endif } diff --git a/UWP/UI_UWP/UI_UWP.vcxproj b/UWP/UI_UWP/UI_UWP.vcxproj index 7fda5b55f9..3b54be0228 100644 --- a/UWP/UI_UWP/UI_UWP.vcxproj +++ b/UWP/UI_UWP/UI_UWP.vcxproj @@ -304,6 +304,7 @@ + @@ -337,6 +338,7 @@ + @@ -376,4 +378,4 @@ - \ No newline at end of file + diff --git a/UWP/UI_UWP/UI_UWP.vcxproj.filters b/UWP/UI_UWP/UI_UWP.vcxproj.filters index 2dda8c4b86..b3ee44e3c8 100644 --- a/UWP/UI_UWP/UI_UWP.vcxproj.filters +++ b/UWP/UI_UWP/UI_UWP.vcxproj.filters @@ -7,6 +7,7 @@ + @@ -40,6 +41,7 @@ + @@ -65,4 +67,4 @@ - \ No newline at end of file + diff --git a/android/jni/Android.mk b/android/jni/Android.mk index 2b837a0ef2..b6a7c18f53 100644 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -485,6 +485,7 @@ LOCAL_SRC_FILES := \ $(SRC)/android/jni/native_audio.cpp \ $(SRC)/android/jni/native-audio-so.cpp \ $(SRC)/UI/BackgroundAudio.cpp \ + $(SRC)/UI/DiscordIntegration.cpp \ $(SRC)/UI/DevScreens.cpp \ $(SRC)/UI/DisplayLayoutEditor.cpp \ $(SRC)/UI/DisplayLayoutScreen.cpp \