X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2FCECProcessor.cpp;h=a42921619e5bf874cf3b0c2d8f5063394557ab94;hb=4d6f5ac7a660c0b450bff491a16f8bc23944f0ea;hp=02c1e96498b1295af7025c828d9f3c4812bf28ef;hpb=2efa39b7105c98a2219a12e5ab3432b77e042112;p=deb_libcec.git diff --git a/src/lib/CECProcessor.cpp b/src/lib/CECProcessor.cpp index 02c1e96..a429216 100644 --- a/src/lib/CECProcessor.cpp +++ b/src/lib/CECProcessor.cpp @@ -607,6 +607,7 @@ bool CCECProcessor::SetPhysicalAddress(uint16_t iPhysicalAddress, bool bSendUpda { bool bSendActiveView(false); bool bReturn(false); + cec_logical_addresses sendUpdatesTo; { CLockObject lock(&m_mutex); @@ -620,7 +621,7 @@ bool CCECProcessor::SetPhysicalAddress(uint16_t iPhysicalAddress, bool bSendUpda m_busDevices[iPtr]->SetInactiveSource(); m_busDevices[iPtr]->SetPhysicalAddress(iPhysicalAddress); if (bSendUpdate) - m_busDevices[iPtr]->TransmitPhysicalAddress(); + sendUpdatesTo.Set((cec_logical_address)iPtr); } bSendActiveView = bWasActiveSource && bSendUpdate; @@ -628,6 +629,10 @@ bool CCECProcessor::SetPhysicalAddress(uint16_t iPhysicalAddress, bool bSendUpda } } + for (uint8_t iPtr = 0; iPtr < 15; iPtr++) + if (sendUpdatesTo[iPtr]) + m_busDevices[iPtr]->TransmitPhysicalAddress(); + if (bSendActiveView) SetActiveView();