From f070cca382fe6a5b0f2b35b5572717f82fa7a0ec Mon Sep 17 00:00:00 2001
From: Pierre Lespagnol <pierre.lespagnol@savoirfairelinux.com>
Date: Mon, 16 Nov 2020 10:45:26 -0500
Subject: [PATCH] conference: add mute participant for moderator

Change-Id: Ia15bb8dbf9937bc6895a7fcb50367c7c11eebda9
---
 src/api/newcallmodel.h           | 8 ++++++++
 src/newcallmodel.cpp             | 6 ++++++
 src/qtwrapper/callmanager_wrap.h | 5 +++++
 3 files changed, 19 insertions(+)

diff --git a/src/api/newcallmodel.h b/src/api/newcallmodel.h
index c331e30e..4e497f0e 100644
--- a/src/api/newcallmodel.h
+++ b/src/api/newcallmodel.h
@@ -255,6 +255,14 @@ public:
      */
     void setModerator(const QString& confId, const QString& peerId, const bool& state);
 
+    /**
+     * Mute/unmute participant
+     * @param confId        The conference to change
+     * @param peerId        Uri of the participant to mute
+     * @param state         State of the change (true mute participant / false unmute participant)
+     */
+    void muteParticipant(const QString& confId, const QString& peerId, const bool& state);
+
 Q_SIGNALS:
     /**
      * Emitted when a call state changes
diff --git a/src/newcallmodel.cpp b/src/newcallmodel.cpp
index ff661bb7..11302651 100644
--- a/src/newcallmodel.cpp
+++ b/src/newcallmodel.cpp
@@ -774,6 +774,12 @@ NewCallModel::setModerator(const QString& confId, const QString& peerId, const b
     CallManager::instance().setModerator(confId, peerId, state);
 }
 
+void
+NewCallModel::muteParticipant(const QString& confId, const QString& peerId, const bool& state)
+{
+    CallManager::instance().muteParticipant(confId, peerId, state);
+}
+
 void
 NewCallModel::sendSipMessage(const QString& callId, const QString& body) const
 {
diff --git a/src/qtwrapper/callmanager_wrap.h b/src/qtwrapper/callmanager_wrap.h
index 4c856d97..b50119dd 100644
--- a/src/qtwrapper/callmanager_wrap.h
+++ b/src/qtwrapper/callmanager_wrap.h
@@ -391,6 +391,11 @@ public Q_SLOTS: // METHODS
         DRing::setModerator(confId.toStdString(), peerId.toStdString(), state);
     }
 
+    void muteParticipant(const QString& confId, const QString& peerId, const bool& state)
+    {
+        DRing::muteParticipant(confId.toStdString(), peerId.toStdString(), state);
+    }
+
 Q_SIGNALS: // SIGNALS
     void callStateChanged(const QString& callID, const QString& state, int code);
     void transferFailed();
-- 
GitLab