From 942a81b0dfba2b2e2b89d9b7fc67e0bbb2b9c223 Mon Sep 17 00:00:00 2001
From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com>
Date: Tue, 20 Apr 2021 17:55:40 -0400
Subject: [PATCH] instancemanager: add runtime mute dring option

Change-Id: I8389ac70809ce55635603df0926cee041d2a62f9
---
 src/api/lrc.h                        | 2 +-
 src/dbus/instancemanager.cpp         | 4 ++--
 src/dbus/instancemanager.h           | 2 +-
 src/lrc.cpp                          | 4 ++--
 src/qtwrapper/instancemanager.cpp    | 8 +++++---
 src/qtwrapper/instancemanager_wrap.h | 2 +-
 6 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/api/lrc.h b/src/api/lrc.h
index 108aae75..ee73c4b4 100644
--- a/src/api/lrc.h
+++ b/src/api/lrc.h
@@ -47,7 +47,7 @@ public:
      * @param willMigrateCb
      * @param didMigrateCb
      */
-    Lrc(MigrationCb willMigrateCb = {}, MigrationCb didMigrateCb = {});
+    Lrc(MigrationCb willMigrateCb = {}, MigrationCb didMigrateCb = {}, bool muteDring = false);
     ~Lrc();
     /**
      * get a reference on account model.
diff --git a/src/dbus/instancemanager.cpp b/src/dbus/instancemanager.cpp
index 0e829123..8b34ee1b 100644
--- a/src/dbus/instancemanager.cpp
+++ b/src/dbus/instancemanager.cpp
@@ -29,10 +29,10 @@
 #include "../interfaces/dbuserrorhandleri.h"
 
 InstanceManagerInterface&
-InstanceManager::instance()
+InstanceManager::instance(bool muteDring)
 {
 #ifdef ENABLE_LIBWRAP
-    static auto interface = new InstanceManagerInterface();
+    static auto interface = new InstanceManagerInterface(muteDring);
 #else
     if (!dbus_metaTypeInit)
         registerCommTypes();
diff --git a/src/dbus/instancemanager.h b/src/dbus/instancemanager.h
index e71b7f92..1343a51c 100644
--- a/src/dbus/instancemanager.h
+++ b/src/dbus/instancemanager.h
@@ -32,6 +32,6 @@
 
 namespace InstanceManager {
 
-LIB_EXPORT InstanceManagerInterface& instance();
+LIB_EXPORT InstanceManagerInterface& instance(bool muteDring = false);
 
 }
diff --git a/src/lrc.cpp b/src/lrc.cpp
index 8ab10479..976af657 100644
--- a/src/lrc.cpp
+++ b/src/lrc.cpp
@@ -65,7 +65,7 @@ public:
     std::unique_ptr<PluginModel> PluginModel_;
 };
 
-Lrc::Lrc(MigrationCb willDoMigrationCb, MigrationCb didDoMigrationCb)
+Lrc::Lrc(MigrationCb willDoMigrationCb, MigrationCb didDoMigrationCb, bool muteDring)
 {
     lrc::api::Lrc::holdConferences.store(true);
 #ifndef ENABLE_LIBWRAP
@@ -74,7 +74,7 @@ Lrc::Lrc(MigrationCb willDoMigrationCb, MigrationCb didDoMigrationCb)
 #endif
     // Ensure Daemon is running/loaded (especially on non-DBus platforms)
     // before instantiating LRC and its members
-    InstanceManager::instance();
+    InstanceManager::instance(muteDring);
     lrcPimpl_ = std::make_unique<LrcPimpl>(*this, willDoMigrationCb, didDoMigrationCb);
 }
 
diff --git a/src/qtwrapper/instancemanager.cpp b/src/qtwrapper/instancemanager.cpp
index e60d30b0..a5aabdb8 100644
--- a/src/qtwrapper/instancemanager.cpp
+++ b/src/qtwrapper/instancemanager.cpp
@@ -27,7 +27,7 @@
 
 static int ringFlags = 0;
 
-InstanceManagerInterface::InstanceManagerInterface()
+InstanceManagerInterface::InstanceManagerInterface(bool muteDring)
 {
     using namespace std::placeholders;
 
@@ -43,8 +43,10 @@ InstanceManagerInterface::InstanceManagerInterface()
 #endif
 
 #ifndef MUTE_DRING
-    ringFlags |= DRing::DRING_FLAG_DEBUG;
-    ringFlags |= DRing::DRING_FLAG_CONSOLE_LOG;
+    if (!muteDring) {
+        ringFlags |= DRing::DRING_FLAG_DEBUG;
+        ringFlags |= DRing::DRING_FLAG_CONSOLE_LOG;
+    }
 #endif
 
     DRing::init(static_cast<DRing::InitFlag>(ringFlags));
diff --git a/src/qtwrapper/instancemanager_wrap.h b/src/qtwrapper/instancemanager_wrap.h
index 4f2949e2..ad37b2f2 100644
--- a/src/qtwrapper/instancemanager_wrap.h
+++ b/src/qtwrapper/instancemanager_wrap.h
@@ -38,7 +38,7 @@ class InstanceManagerInterface : public QObject
 {
     Q_OBJECT
 public:
-    InstanceManagerInterface();
+    InstanceManagerInterface(bool muteDring = false);
     ~InstanceManagerInterface();
 
     // TODO: These are not present in dring.h
-- 
GitLab