From: Lars Op den Kamp Date: Thu, 21 Jun 2012 08:58:10 +0000 (+0200) Subject: cec: don't send active source commands when the physical address is invalid or unknown X-Git-Tag: upstream/2.2.0~1^2~22^2^2~31 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=3a48aeae8998b4803888588ee6b258576c9c6680;p=deb_libcec.git cec: don't send active source commands when the physical address is invalid or unknown --- diff --git a/src/lib/devices/CECBusDevice.cpp b/src/lib/devices/CECBusDevice.cpp index e1697c3..3fb30e8 100644 --- a/src/lib/devices/CECBusDevice.cpp +++ b/src/lib/devices/CECBusDevice.cpp @@ -945,9 +945,18 @@ void CCECBusDevice::MarkAsInactiveSource(void) bool CCECBusDevice::TransmitActiveSource(void) { bool bSendActiveSource(false); + uint16_t iPhysicalAddress(CEC_INVALID_PHYSICAL_ADDRESS); { CLockObject lock(m_mutex); + if (!HasValidPhysicalAddress()) + { + LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s (%X) has an invalid physical address, not sending active source commands", GetLogicalAddressName(), m_iLogicalAddress); + return false; + } + + iPhysicalAddress = m_iPhysicalAddress; + if (m_powerStatus != CEC_POWER_STATUS_ON && m_powerStatus != CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON) LIB_CEC->AddLog(CEC_LOG_DEBUG, "<< %s (%X) is not powered on", GetLogicalAddressName(), m_iLogicalAddress); else if (m_bActiveSource) @@ -963,7 +972,7 @@ bool CCECBusDevice::TransmitActiveSource(void) if (bSendActiveSource) { MarkBusy(); - bActiveSourceSent = m_handler->TransmitActiveSource(m_iLogicalAddress, m_iPhysicalAddress); + bActiveSourceSent = m_handler->TransmitActiveSource(m_iLogicalAddress, iPhysicalAddress); MarkReady(); }