config->iFirmwareVersion = m_communication->GetFirmwareVersion();
config->iPhysicalAddress = m_communication->GetPhysicalAddress();
config->iFirmwareBuildDate = m_communication->GetFirmwareBuildDate();
+ config->adapterType = m_communication->GetAdapterType();
return true;
}
configuration.serverVersion = LIBCEC_VERSION_CURRENT;
configuration.iFirmwareVersion = m_communication->GetFirmwareVersion();
configuration.iFirmwareBuildDate = m_communication->GetFirmwareBuildDate();
+ configuration.adapterType = m_communication->GetAdapterType();
// mark the client as registered
client->SetRegistered(true);
if (bSwitchTo)
UnregisterClients();
}
+
+void CCECProcessor::HandleLogicalAddressLost(cec_logical_address oldAddress, cec_logical_address newAddress)
+{
+ m_libcec->AddLog(CEC_LOG_NOTICE, "logical address %x was taken by another device, changed to %x", oldAddress, newAddress);
+ CCECClient* client = GetClient(oldAddress);
+ if (client)
+ {
+ if (newAddress == CECDEVICE_UNKNOWN)
+ UnregisterClient(client);
+ else
+ {
+ client->m_configuration.logicalAddresses.Unset(oldAddress);
+ client->m_configuration.logicalAddresses.Set(newAddress);
+ }
+ }
+}