X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fdevices%2FCECBusDevice.cpp;h=8f966a233194dd748e76a1a43c1b85263ca1a225;hb=75060af4927b7e412634756bb1ec952a25fab772;hp=686988cd0568dbcff9c3463fc8dc242339405863;hpb=0d800fe507054f9fc752ba70e5a9c14d95dcb87f;p=deb_libcec.git diff --git a/src/lib/devices/CECBusDevice.cpp b/src/lib/devices/CECBusDevice.cpp index 686988c..8f966a2 100644 --- a/src/lib/devices/CECBusDevice.cpp +++ b/src/lib/devices/CECBusDevice.cpp @@ -133,10 +133,14 @@ bool CCECBusDevice::ReplaceHandler(bool bActivateSource /* = true */) if (bInitHandler) { - m_handler->InitHandler(); + CCECBusDevice *primary = GetProcessor()->GetPrimaryDevice(); + if (primary->GetLogicalAddress() != CECDEVICE_UNREGISTERED) + { + m_handler->InitHandler(); - if (bActivateSource && IsHandledByLibCEC() && IsActiveSource()) - m_handler->ActivateSource(); + if (bActivateSource && IsHandledByLibCEC() && IsActiveSource()) + m_handler->ActivateSource(); + } } MarkReady(); @@ -948,15 +952,15 @@ bool CCECBusDevice::TransmitActiveSource(void) LIB_CEC->AddLog(CEC_LOG_DEBUG, "<< %s (%X) is not the active source", GetLogicalAddressName(), m_iLogicalAddress); } + bool bActiveSourceSent(false); if (bSendActiveSource) { MarkBusy(); - m_handler->TransmitActiveSource(m_iLogicalAddress, m_iPhysicalAddress); + bActiveSourceSent = m_handler->TransmitActiveSource(m_iLogicalAddress, m_iPhysicalAddress); MarkReady(); - return true; } - return false; + return bActiveSourceSent; } bool CCECBusDevice::TransmitImageViewOn(void) @@ -970,10 +974,11 @@ bool CCECBusDevice::TransmitImageViewOn(void) } } + bool bImageViewOnSent(false); MarkBusy(); - m_handler->TransmitImageViewOn(m_iLogicalAddress, CECDEVICE_TV); + bImageViewOnSent = m_handler->TransmitImageViewOn(m_iLogicalAddress, CECDEVICE_TV); MarkReady(); - return true; + return bImageViewOnSent; } bool CCECBusDevice::TransmitInactiveSource(void)