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 \