diff --git a/src/yuzu/discord_impl.cpp b/src/yuzu/discord_impl.cpp index a93733b26c..66f928af6c 100644 --- a/src/yuzu/discord_impl.cpp +++ b/src/yuzu/discord_impl.cpp @@ -13,7 +13,7 @@ namespace DiscordRPC { -DiscordImpl::DiscordImpl() { +DiscordImpl::DiscordImpl(Core::System& system_) : system{system_} { DiscordEventHandlers handlers{}; // The number is the client ID for yuzu, it's used for images and the @@ -35,12 +35,13 @@ void DiscordImpl::Update() { std::chrono::system_clock::now().time_since_epoch()) .count(); std::string title; - if (Core::System::GetInstance().IsPoweredOn()) - Core::System::GetInstance().GetAppLoader().ReadTitle(title); + if (system.IsPoweredOn()) { + system.GetAppLoader().ReadTitle(title); + } DiscordRichPresence presence{}; presence.largeImageKey = "yuzu_logo"; presence.largeImageText = "yuzu is an emulator for the Nintendo Switch"; - if (Core::System::GetInstance().IsPoweredOn()) { + if (system.IsPoweredOn()) { presence.state = title.c_str(); presence.details = "Currently in game"; } else { diff --git a/src/yuzu/discord_impl.h b/src/yuzu/discord_impl.h index 4bfda8cdf6..03ad42681c 100644 --- a/src/yuzu/discord_impl.h +++ b/src/yuzu/discord_impl.h @@ -6,15 +6,21 @@ #include "yuzu/discord.h" +namespace Core { +class System; +} + namespace DiscordRPC { class DiscordImpl : public DiscordInterface { public: - DiscordImpl(); + DiscordImpl(Core::System& system_); ~DiscordImpl() override; void Pause() override; void Update() override; + + Core::System& system; }; } // namespace DiscordRPC diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 1d9e0f79d8..8140e659b4 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -3431,7 +3431,7 @@ void GMainWindow::OnLanguageChanged(const QString& locale) { void GMainWindow::SetDiscordEnabled([[maybe_unused]] bool state) { #ifdef USE_DISCORD_PRESENCE if (state) { - discord_rpc = std::make_unique(); + discord_rpc = std::make_unique(system); } else { discord_rpc = std::make_unique(); }