Changed getInstance implementation with Singleton class.

This commit is contained in:
delledev 2024-10-03 18:29:48 +03:00
parent fb18a7e508
commit c8867545ca
4 changed files with 12 additions and 14 deletions

View File

@ -20,11 +20,6 @@ class RPC {
RPCStatus status; RPCStatus status;
public: public:
static RPC& getInstance() {
static RPC instance;
return instance;
}
void init(); void init();
void setStatusIdling(); void setStatusIdling();
void setStatusPlaying(const std::string& game_name, const std::string& game_id); void setStatusPlaying(const std::string& game_name, const std::string& game_id);

View File

@ -213,10 +213,11 @@ void Emulator::Run(const std::filesystem::path& file) {
// Discord RPC // Discord RPC
if (Config::getEnableDiscordRPC()) { if (Config::getEnableDiscordRPC()) {
if (DiscordRPCHandler::RPC::getInstance().getRPCEnabled() == false) { auto* rpc = Common::Singleton<DiscordRPCHandler::RPC>::Instance();
DiscordRPCHandler::RPC::getInstance().init(); if (rpc->getRPCEnabled() == false) {
rpc->init();
} }
DiscordRPCHandler::RPC::getInstance().setStatusPlaying(game_info.title, id); rpc->setStatusPlaying(game_info.title, id);
} }
// start execution // start execution

View File

@ -72,8 +72,9 @@ bool MainWindow::Init() {
// Initialize Discord RPC // Initialize Discord RPC
if (Config::getEnableDiscordRPC()) { if (Config::getEnableDiscordRPC()) {
DiscordRPCHandler::RPC::getInstance().init(); auto* rpc = Common::Singleton<DiscordRPCHandler::RPC>::Instance();
DiscordRPCHandler::RPC::getInstance().setStatusIdling(); rpc->init();
rpc->setStatusIdling();
} }
return true; return true;

View File

@ -154,11 +154,12 @@ SettingsDialog::SettingsDialog(std::span<const QString> physical_devices, QWidge
connect(ui->discordRPCCheckbox, &QCheckBox::stateChanged, this, [](int val) { connect(ui->discordRPCCheckbox, &QCheckBox::stateChanged, this, [](int val) {
Config::setEnableDiscordRPC(val); Config::setEnableDiscordRPC(val);
if (val) { auto* rpc = Common::Singleton<DiscordRPCHandler::RPC>::Instance();
DiscordRPCHandler::RPC::getInstance().init(); if (val == Qt::Checked) {
DiscordRPCHandler::RPC::getInstance().setStatusIdling(); rpc->init();
rpc->setStatusIdling();
} else { } else {
DiscordRPCHandler::RPC::getInstance().shutdown(); rpc->shutdown();
} }
}); });
} }