return true;
}
-bool CCECProcessor::SetPhysicalAddress(uint16_t iPhysicalAddress)
+bool CCECProcessor::SetPhysicalAddress(uint16_t iPhysicalAddress, bool bSendUpdate /* = true */)
{
bool bWasActiveSource(false);
CLockObject lock(&m_mutex);
bWasActiveSource |= m_busDevices[iPtr]->IsActiveSource();
m_busDevices[iPtr]->SetInactiveSource();
m_busDevices[iPtr]->SetPhysicalAddress(iPhysicalAddress);
- m_busDevices[iPtr]->TransmitPhysicalAddress();
+ if (bSendUpdate)
+ m_busDevices[iPtr]->TransmitPhysicalAddress();
}
- return bWasActiveSource ? SetActiveView() : true;
+ return bWasActiveSource && bSendUpdate ? SetActiveView() : true;
}
return false;
}
virtual bool TransmitInactiveSource(void);
virtual bool SetLogicalAddress(cec_logical_address iLogicalAddress);
virtual bool SetMenuState(cec_menu_state state, bool bSendUpdate = true);
- virtual bool SetPhysicalAddress(uint16_t iPhysicalAddress);
+ virtual bool SetPhysicalAddress(uint16_t iPhysicalAddress, bool bSendUpdate = true);
virtual bool SetActiveSource(uint16_t iStreamPath);
virtual bool SwitchMonitoring(bool bEnable);
virtual bool PollDevice(cec_logical_address iAddress);