+CRPiCECAdapterFindNewLogicalAddress::CRPiCECAdapterFindNewLogicalAddress(CRPiCECAdapterCommunication* communication, const cec_logical_address address) :
+ m_communication(communication),
+ m_address(address) { }
+
+void *CRPiCECAdapterFindNewLogicalAddress::Process(void)
+{
+ cec_logical_address newAddress(CECDEVICE_UNKNOWN);
+ for (unsigned int iLA = CECDEVICE_RECORDINGDEVICE1; newAddress == CECDEVICE_UNKNOWN && iLA < CECDEVICE_BROADCAST; iLA++)
+ {
+ if (CCECTypeUtils::GetType((cec_logical_address)iLA) == CCECTypeUtils::GetType(m_address) &&
+ m_communication->SupportsSourceLogicalAddress((cec_logical_address)iLA) &&
+ m_communication->RegisterLogicalAddress((cec_logical_address)iLA))
+ newAddress = (cec_logical_address)iLA;
+ }
+
+ m_communication->m_callback->HandleLogicalAddressLost(m_address, newAddress);
+ return NULL;
+}
+