- CCECBusDevice* previouslyActive = map->GetActiveSource();
- if (!previouslyActive)
- return;
-
- CECDEVICEVEC devices;
- m_processor->GetDevices()->GetChildrenOf(devices, this);
-
- for (CECDEVICEVEC::iterator it = devices.begin(); it != devices.end(); it++)
- {
- if (!CCECTypeUtils::PhysicalAddressIsIncluded(iRoute, (*it)->GetCurrentPhysicalAddress()))
- (*it)->MarkAsInactiveSource();
- }
+ CCECBusDevice* newRoute = m_processor->GetDeviceByPhysicalAddress(iRoute, true);
+ if (newRoute && newRoute->IsHandledByLibCEC())
+ newRoute->ActivateSource();