- if (newRoute->IsHandledByLibCEC())
- newRoute->ActivateSource();
- // another device was made active
- else
- newRoute->MarkAsActiveSource();
- }
- else
- {
- // get the current active source and it's physical address
- CCECBusDevice *device = m_processor->GetDevices()->GetActiveSource();
- uint16_t iPhysicalAddress(device ? device->GetCurrentPhysicalAddress() : CEC_INVALID_PHYSICAL_ADDRESS);
-
- // check whether the route below the device changed
- if (CLibCEC::IsValidPhysicalAddress(iPhysicalAddress) &&
- !CCECTypeUtils::PhysicalAddressIsIncluded(iPhysicalAddress, iRoute))
- device->MarkAsInactiveSource();