From: Lars Op den Kamp Date: Thu, 7 Mar 2013 10:35:17 +0000 (+0100) Subject: don't mark a device as inactive when receiving a routing change message, only when... X-Git-Tag: upstream/2.2.0~1^2~5^2~11 X-Git-Url: https://git.piment-noir.org/?p=deb_libcec.git;a=commitdiff_plain;h=96cd9b59674e7111180afe14f175c67eff787338 don't mark a device as inactive when receiving a routing change message, only when another device was made acive. fixes the issue that rc passthrough doesn't work when a tv sends a quick routing change to another port before requesting the active source when coming out of standby --- diff --git a/src/lib/devices/CECBusDevice.cpp b/src/lib/devices/CECBusDevice.cpp index 9d172d8..4d9c56a 100644 --- a/src/lib/devices/CECBusDevice.cpp +++ b/src/lib/devices/CECBusDevice.cpp @@ -1143,17 +1143,6 @@ void CCECBusDevice::SetActiveRoute(uint16_t iRoute) 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(); - } } void CCECBusDevice::SetStreamPath(uint16_t iNewAddress, uint16_t iOldAddress /* = CEC_INVALID_PHYSICAL_ADDRESS */)