From e31ac73cba5089bf9d9c814efad66c9518a1891d Mon Sep 17 00:00:00 2001 From: Sharad Binjola Date: Thu, 12 Jan 2023 10:31:18 -0800 Subject: [PATCH] tv-casting-app: Disconnecting from previous video player before connecting to the new one --- .../tv-casting-common/src/CastingServer.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp b/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp index 8569b31618f2e8..206fbc2e1e3d5b 100644 --- a/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp +++ b/examples/tv-casting-app/tv-casting-common/src/CastingServer.cpp @@ -289,16 +289,17 @@ CHIP_ERROR CastingServer::VerifyOrEstablishConnection(TargetVideoPlayerInfo & ta mOnConnectionFailureClientCallback = onConnectionFailure; mOnNewOrUpdatedEndpoint = onNewOrUpdatedEndpoint; + chip::OperationalDeviceProxy * prevDeviceProxy = + CastingServer::GetInstance()->mActiveTargetVideoPlayerInfo.GetOperationalDeviceProxy(); + if (prevDeviceProxy != nullptr) + { + ChipLogProgress(AppServer, "CastingServer::VerifyOrEstablishConnection Disconnecting previous deviceProxy"); + prevDeviceProxy->Disconnect(); + } + return targetVideoPlayerInfo.FindOrEstablishCASESession( [](TargetVideoPlayerInfo * videoPlayer) { ChipLogProgress(AppServer, "CastingServer::OnConnectionSuccess lambda called"); - chip::OperationalDeviceProxy * prevDeviceProxy = - CastingServer::GetInstance()->mActiveTargetVideoPlayerInfo.GetOperationalDeviceProxy(); - if (prevDeviceProxy != nullptr) - { - ChipLogProgress(AppServer, "CastingServer::OnConnectionSuccess lambda Disconnecting deviceProxy"); - prevDeviceProxy->Disconnect(); - } CastingServer::GetInstance()->mActiveTargetVideoPlayerInfo = *videoPlayer; CastingServer::GetInstance()->mOnConnectionSuccessClientCallback(videoPlayer); },