X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fimplementations%2FCECCommandHandler.cpp;h=83d993682b510d97132aa98af76e969410c2536a;hb=c4287bcda5182b4fe1f76c1b6492a6ac8902599d;hp=8ec93eee09d22a9902bbc24f55dc776441d61d3d;hpb=ddb6ac5bacfcd0903c4e740ecd1c8156c337103f;p=deb_libcec.git diff --git a/src/lib/implementations/CECCommandHandler.cpp b/src/lib/implementations/CECCommandHandler.cpp index 8ec93ee..83d9936 100644 --- a/src/lib/implementations/CECCommandHandler.cpp +++ b/src/lib/implementations/CECCommandHandler.cpp @@ -983,22 +983,20 @@ bool CCECCommandHandler::Transmit(cec_command &command, bool bExpectResponse /* bool CCECCommandHandler::ActivateSource(void) { - if (m_busDevice->GetLogicalAddress() == CECDEVICE_TV) - { - CCECBusDevice *primary = m_processor->GetPrimaryDevice(); - primary->SetPowerStatus(CEC_POWER_STATUS_ON); - primary->SetMenuState(CEC_MENU_STATE_ACTIVATED); - - if (m_busDevice->GetStatus(false) == CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC) - { - m_busDevice->TransmitMenuState(CECDEVICE_TV); - - if ((m_busDevice->GetType() == CEC_DEVICE_TYPE_PLAYBACK_DEVICE || - m_busDevice->GetType() == CEC_DEVICE_TYPE_RECORDING_DEVICE) && - SendDeckStatusUpdateOnActiveSource()) - ((CCECPlaybackDevice *)m_busDevice)->TransmitDeckStatus(CECDEVICE_TV); - m_bHandlerInited = true; - } + if (m_busDevice->IsActiveSource() && + m_busDevice->GetStatus(false) == CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC) + { + m_busDevice->SetPowerStatus(CEC_POWER_STATUS_ON); + m_busDevice->SetMenuState(CEC_MENU_STATE_ACTIVATED); + + m_busDevice->TransmitImageViewOn(); + m_busDevice->TransmitActiveSource(); + m_busDevice->TransmitMenuState(CECDEVICE_TV); + if ((m_busDevice->GetType() == CEC_DEVICE_TYPE_PLAYBACK_DEVICE || + m_busDevice->GetType() == CEC_DEVICE_TYPE_RECORDING_DEVICE) && + SendDeckStatusUpdateOnActiveSource()) + ((CCECPlaybackDevice *)m_busDevice)->TransmitDeckStatus(CECDEVICE_TV); + m_bHandlerInited = true; } return true; }