[App] Add support for Discord rich presence.

This commit is contained in:
Wes Taylor
2019-08-02 09:06:02 -05:00
committed by Rick Gibbed
parent e466687f11
commit ce38e7b0b1
10 changed files with 170 additions and 0 deletions

View File

@@ -7,12 +7,15 @@
******************************************************************************
*/
#include <gflags/gflags.h>
#include "xenia/app/emulator_window.h"
// Autogenerated by `xb premake`.
#include "build/version.h"
#include "third_party/imgui/imgui.h"
#include "xenia/app/discord/discord_presence.h"
#include "xenia/base/clock.h"
#include "xenia/base/debugging.h"
#include "xenia/base/logging.h"
@@ -26,6 +29,8 @@
#include "xenia/ui/imgui_dialog.h"
#include "xenia/ui/imgui_drawer.h"
DEFINE_bool(discord, false, "Enable Discord rich presence");
namespace xe {
namespace app {
@@ -80,6 +85,11 @@ bool EmulatorWindow::Initialize() {
return false;
}
if (FLAGS_discord) {
discord::DiscordPresence::InitializeDiscord();
discord::DiscordPresence::NotPlaying();
}
UpdateTitle();
window_->on_closed.AddListener([this](UIEvent* e) { loop_->Quit(); });
@@ -334,6 +344,9 @@ void EmulatorWindow::FileOpen() {
void EmulatorWindow::FileClose() {
if (emulator_->is_title_open()) {
emulator_->TerminateTitle();
if (FLAGS_discord) {
discord::DiscordPresence::NotPlaying();
}
}
}
@@ -431,6 +444,9 @@ void EmulatorWindow::UpdateTitle() {
auto game_title = emulator()->game_title();
title += xe::format_string(L" | [%.8X] %s", emulator()->title_id(),
game_title.c_str());
if (FLAGS_discord) {
discord::DiscordPresence::PlayingTitle(game_title);
}
}
auto graphics_system = emulator()->graphics_system();