From 921d6e07c91ca5a8c28e19b9412152c2adb76f96 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Thu, 22 Sep 2022 14:23:26 +0200 Subject: [PATCH] Clean audio capture when using MultimediaParametersDialog (avoid having micro recording after quitting the Waiting Room/Media menus) --- .../src/components/settings/SettingsModel.cpp | 6 ++-- .../ui/views/App/Calls/WaitingRoom.qml | 32 ++++++++++++------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index d069dfac7..2a88cc1dd 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -275,8 +275,10 @@ void SettingsModel::startCaptureGraph(){ ++mCaptureGraphListenerCount; } void SettingsModel::stopCaptureGraph(){ - if(--mCaptureGraphListenerCount == 0) - deleteCaptureGraph(); + if(mCaptureGraphListenerCount > 0 ){ + if(--mCaptureGraphListenerCount == 0) + deleteCaptureGraph(); + } } void SettingsModel::deleteCaptureGraph(){ if (mSimpleCaptureGraph) { diff --git a/linphone-app/ui/views/App/Calls/WaitingRoom.qml b/linphone-app/ui/views/App/Calls/WaitingRoom.qml index d37bc5f7b..1626fcb40 100644 --- a/linphone-app/ui/views/App/Calls/WaitingRoom.qml +++ b/linphone-app/ui/views/App/Calls/WaitingRoom.qml @@ -161,25 +161,33 @@ Rectangle { showCustomButton: !mainItem.callModel showUsername: false customButtonColorSet : WaitingRoomStyle.buttons.options - customButtonToggled: mediaMenu.visible + customButtonToggled: multimediaLoader.active onVideoDefinitionChanged: previewDefinition = SettingsModel.getCurrentPreviewVideoDefinition() - onCustomButtonClicked: mediaMenu.visible = !mediaMenu.visible + onCustomButtonClicked: multimediaLoader.active = !multimediaLoader.active } } - MultimediaParametersDialog{ - id: mediaMenu + Loader{ + id: multimediaLoader Layout.fillHeight: true Layout.leftMargin: 10 Layout.rightMargin: 10 - Layout.minimumHeight: fitHeight - Layout.minimumWidth: fitWidth - radius: 8 - flat: true - showMargins: true - fixedSize: false - onExitStatus: visible = false - visible: false + Layout.minimumHeight: item? item.fitHeight : 0 + Layout.minimumWidth: item? item.fitWidth : 0 + + sourceComponent: multimediaComponent + active: false + + Component{ + id: multimediaComponent + MultimediaParametersDialog{ + radius: 8 + flat: true + showMargins: true + fixedSize: false + onExitStatus: multimediaLoader.active = false + } + } } } ColumnLayout{