diff --git a/src/app/avadapter.cpp b/src/app/avadapter.cpp index 9ef21900ba4beb4a356bdf941eb173ecbe002bc6..85d56ac74dde9f9a3b363995164d44fc45aa14ea 100644 --- a/src/app/avadapter.cpp +++ b/src/app/avadapter.cpp @@ -320,14 +320,16 @@ AvAdapter::stopSharing(const QString& source) ->removeMedia(callId, libjami::Media::Details::MEDIA_TYPE_VIDEO, libjami::Media::VideoProtocolPrefix::DISPLAY, - muteCamera_); + muteCamera_, + true); } else { qDebug() << "Stopping file: " << source; lrcInstance_->getCurrentCallModel() ->removeMedia(callId, libjami::Media::Details::MEDIA_TYPE_VIDEO, libjami::Media::VideoProtocolPrefix::FILE, - muteCamera_); + muteCamera_, + true); } } } diff --git a/src/app/calladapter.cpp b/src/app/calladapter.cpp index 0a6e91520d74527614d62ee393d9ba5f910f3e48..f5036a94707261b324fa30259f239b0939d55467 100644 --- a/src/app/calladapter.cpp +++ b/src/app/calladapter.cpp @@ -976,7 +976,7 @@ CallAdapter::muteCameraToggle() callModel->removeMedia(callId, libjami::Media::Details::MEDIA_TYPE_VIDEO, libjami::Media::VideoProtocolPrefix::CAMERA, - mute); + mute, false); else callModel->addMedia(callId, lrcInstance_->avModel().getCurrentVideoCaptureDevice(), diff --git a/src/libclient/api/callmodel.h b/src/libclient/api/callmodel.h index 58a2b29eca7603e469ee11c72ce630583f2b0243..6840fbb52735bd8f3c61c8479ec6caf70cabee91 100644 --- a/src/libclient/api/callmodel.h +++ b/src/libclient/api/callmodel.h @@ -125,11 +125,13 @@ public: * @param source Of the media * @param type Audio/video * @param mute + * @param removeAll Remove Audio/Video */ void removeMedia(const QString& callId, const QString& mediaType, const QString& type, - bool muteCamera); + bool muteCamera, + bool removeAll); /** * Get the call from its call id diff --git a/src/libclient/callmodel.cpp b/src/libclient/callmodel.cpp index faf12a03cf57c3dd29b5cc8b4906778ddca8db0b..fc799afcb30d03cf076d2f8b07cec86cdf16b51b 100644 --- a/src/libclient/callmodel.cpp +++ b/src/libclient/callmodel.cpp @@ -613,7 +613,8 @@ void CallModel::removeMedia(const QString& callId, const QString& mediaType, const QString& type, - bool muteCamera) + bool muteCamera, + bool removeAll) { auto& callInfo = pimpl_->calls[callId]; if (!callInfo) @@ -629,7 +630,7 @@ CallModel::removeMedia(const QString& callId, replaceIdx = true; label = media[MediaAttributeKey::LABEL]; } else { - if (!media[MediaAttributeKey::SOURCE].startsWith(type)) { + if (!removeAll || !media[MediaAttributeKey::SOURCE].startsWith(type)) { if (media[MediaAttributeKey::MEDIA_TYPE] == mediaType) { auto newMedia = media; if (replaceIdx) {