aboutsummaryrefslogtreecommitdiff
path: root/discord_rich_presence.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'discord_rich_presence.cpp')
-rw-r--r--discord_rich_presence.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/discord_rich_presence.cpp b/discord_rich_presence.cpp
new file mode 100644
index 00000000..5d64c102
--- /dev/null
+++ b/discord_rich_presence.cpp
@@ -0,0 +1,58 @@
+#include "discord_rich_presence.h"
+
+#include <cstring>
+
+#include <QDebug>
+
+namespace AttorneyOnline {
+
+Discord::Discord()
+{
+ DiscordEventHandlers handlers;
+ std::memset(&handlers, 0, sizeof(handlers));
+ handlers = {};
+ handlers.ready = [] {
+ qInfo() << "Discord RPC ready";
+ };
+ /*
+ handlers.disconnected = [](int errorCode, const char* message) {
+ qInfo() << "Discord RPC disconnected! " << message;
+ };
+ handlers.errored = [](int errorCode, const char* message) {
+ qWarning() << "Discord RPC errored out! " << message;
+ };
+ */
+ qInfo() << "Are things working out all right?";
+ Discord_Initialize(APPLICATION_ID, &handlers, 1, nullptr);
+}
+
+Discord::~Discord()
+{
+ Discord_Shutdown();
+}
+
+void Discord::state_lobby()
+{
+ DiscordRichPresence presence;
+ std::memset(&presence, 0, sizeof(presence));
+ presence.state = "In Lobby";
+ presence.details = "Idle";
+ presence.largeImageKey = "ao2-logo";
+ presence.largeImageText = "Objection!";
+ presence.instance = 1;
+ Discord_UpdatePresence(&presence);
+}
+
+void Discord::state_server(const char* name, const char* server_id)
+{
+ DiscordRichPresence presence;
+ std::memset(&presence, 0, sizeof(presence));
+ presence.state = "In a Server";
+ presence.details = name;
+ presence.largeImageKey = "ao2-logo";
+ presence.largeImageText = "Objection!";
+ presence.instance = 1;
+ presence.matchSecret = server_id;
+}
+
+}