[App] Add support for Discord rich presence.
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user