Browse Source

discord_impl: Remove global system instances

lat9nq 4 năm trước cách đây
mục cha
commit
b6894bfc5b
3 tập tin đã thay đổi với 13 bổ sung6 xóa
  1. 5 4
      src/yuzu/discord_impl.cpp
  2. 7 1
      src/yuzu/discord_impl.h
  3. 1 1
      src/yuzu/main.cpp

+ 5 - 4
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 {

+ 7 - 1
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

+ 1 - 1
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<DiscordRPC::DiscordImpl>();
+        discord_rpc = std::make_unique<DiscordRPC::DiscordImpl>(system);
     } else {
         discord_rpc = std::make_unique<DiscordRPC::NullImpl>();
     }