X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Fdevices%2FCECBusDevice.cpp;h=a2cfbee65da002f306f7c74961871ca87065ba0b;hb=c3b3656087901ec8446206f54410de62612afc88;hp=9d172d88a7ccec657bd09af093d2e92d03c0e821;hpb=16f47961800432dbdd5b3ead717908f383d26d6b;p=deb_libcec.git diff --git a/src/lib/devices/CECBusDevice.cpp b/src/lib/devices/CECBusDevice.cpp index 9d172d8..a2cfbee 100644 --- a/src/lib/devices/CECBusDevice.cpp +++ b/src/lib/devices/CECBusDevice.cpp @@ -40,6 +40,7 @@ #include "lib/implementations/SLCommandHandler.h" #include "lib/implementations/VLCommandHandler.h" #include "lib/implementations/PHCommandHandler.h" +#include "lib/implementations/RLCommandHandler.h" #include "lib/LibCEC.h" #include "lib/CECTypeUtils.h" #include "lib/platform/util/timeutils.h" @@ -136,6 +137,10 @@ bool CCECBusDevice::ReplaceHandler(bool bActivateSource /* = true */) case CEC_VENDOR_PHILIPS: m_handler = new CPHCommandHandler(this, iTransmitTimeout, iTransmitWait, iTransmitRetries, iActiveSourcePending); break; + case CEC_VENDOR_TOSHIBA: + case CEC_VENDOR_TOSHIBA2: + m_handler = new CRLCommandHandler(this, iTransmitTimeout, iTransmitWait, iTransmitRetries, iActiveSourcePending); + break; default: m_handler = new CCECCommandHandler(this, iTransmitTimeout, iTransmitWait, iTransmitRetries, iActiveSourcePending); break; @@ -781,7 +786,7 @@ cec_bus_device_status CCECBusDevice::GetStatus(bool bForcePoll /* = false */, bo if (bNeedsPoll) { bool bPollAcked(false); - if (bNeedsPoll && NeedsPoll()) + if (bNeedsPoll) bPollAcked = m_processor->PollDevice(m_iLogicalAddress); status = bPollAcked ? CEC_DEVICE_STATUS_PRESENT : CEC_DEVICE_STATUS_NOT_PRESENT; @@ -1143,17 +1148,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 */)