From 579cf7e773c5db1b1c3c65356aae7586599f5af7 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 3 Apr 2024 16:19:36 +0200 Subject: [PATCH] Fix on AS Preview --- Linphone/core/camera/PreviewManager.cpp | 14 +++++++++----- Linphone/view/Item/Call/WaitingRoom.qml | 2 +- Linphone/view/Item/Contact/Sticker.qml | 5 +++-- Linphone/view/Layout/Call/ActiveSpeakerLayout.qml | 4 ++-- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Linphone/core/camera/PreviewManager.cpp b/Linphone/core/camera/PreviewManager.cpp index 8f052683..c9059dfb 100644 --- a/Linphone/core/camera/PreviewManager.cpp +++ b/Linphone/core/camera/PreviewManager.cpp @@ -66,11 +66,15 @@ QQuickFramebufferObject::Renderer *PreviewManager::subscribe(const CameraGui *ca } else { lDebug() << log().arg("Resubscribing") << itCandidate->first->getQmlName(); } - App::postModelBlock([&renderer, isFirst = (itCandidate == mCandidates.begin())]() { - renderer = - (QQuickFramebufferObject::Renderer *)CoreModel::getInstance()->getCore()->createNativePreviewWindowId(); - if (isFirst) CoreModel::getInstance()->getCore()->setNativePreviewWindowId(renderer); - }); + App::postModelBlock( + [&renderer, isFirst = (itCandidate == mCandidates.begin()), name = itCandidate->first->getQmlName()]() { + renderer = + (QQuickFramebufferObject::Renderer *)CoreModel::getInstance()->getCore()->createNativePreviewWindowId(); + if (isFirst) { + lDebug() << "[PreviewManager] " << name << " Set Native Preview Id"; + CoreModel::getInstance()->getCore()->setNativePreviewWindowId(renderer); + } + }); itCandidate->second = renderer; mCounterMutex.unlock(); return renderer; diff --git a/Linphone/view/Item/Call/WaitingRoom.qml b/Linphone/view/Item/Call/WaitingRoom.qml index ef69bd2d..916afea3 100644 --- a/Linphone/view/Item/Call/WaitingRoom.qml +++ b/Linphone/view/Item/Call/WaitingRoom.qml @@ -29,7 +29,7 @@ RowLayout { id: accounts } account: accounts.defaultAccount - previewEnabled: mainItem.cameraEnabled + previewEnabled: true } RowLayout { Layout.alignment: Qt.AlignHCenter diff --git a/Linphone/view/Item/Contact/Sticker.qml b/Linphone/view/Item/Contact/Sticker.qml index ed1ebc13..4728aa9e 100644 --- a/Linphone/view/Item/Contact/Sticker.qml +++ b/Linphone/view/Item/Contact/Sticker.qml @@ -75,12 +75,13 @@ Item { Loader{ id: cameraLoader anchors.fill: parent + property bool reset: false Timer{ id: resetTimer interval: 1 - onTriggered: {cameraLoader.active=false; cameraLoader.active=true;} + onTriggered: {cameraLoader.reset=true; cameraLoader.reset=false;} } - active: mainItem.visible && mainItem.cameraEnabled + active: mainItem.visible && mainItem.cameraEnabled && !mainItem.reset onActiveChanged: console.log("("+mainItem.qmlName+") Camera active " + active) sourceComponent: cameraComponent } diff --git a/Linphone/view/Layout/Call/ActiveSpeakerLayout.qml b/Linphone/view/Layout/Call/ActiveSpeakerLayout.qml index 34d25427..a5986892 100644 --- a/Linphone/view/Layout/Call/ActiveSpeakerLayout.qml +++ b/Linphone/view/Layout/Call/ActiveSpeakerLayout.qml @@ -96,9 +96,9 @@ Item{ qmlName: 'M_'+index participantDevice: modelData - cameraEnabled: visible + cameraEnabled: mainItem.call.core.cameraEnabled Component.onCompleted: console.log(modelData.core.address) - //previewEnabled: mainItem.call.core.cameraEnabled + previewEnabled: index == 0 } } }