GetVendorId(initiator); // ensure that we got the vendor id, because the implementations vary per vendor
MarkBusy();
- cec_power_status currentStatus = GetPowerStatus(initiator, false);
- if (currentStatus != CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON &&
- currentStatus != CEC_POWER_STATUS_ON)
+ cec_power_status currentStatus;
+ if (m_iLogicalAddress == CECDEVICE_TV ||
+ ((currentStatus = GetPowerStatus(initiator, false)) != CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON &&
+ currentStatus != CEC_POWER_STATUS_ON))
{
LIB_CEC->AddLog(CEC_LOG_NOTICE, "<< powering on '%s' (%X)", GetLogicalAddressName(), m_iLogicalAddress);
- if (m_handler->PowerOn(initiator, m_iLogicalAddress))
- {
- SetPowerStatus(CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON);
- bReturn = true;
- }
+ bReturn = m_handler->PowerOn(initiator, m_iLogicalAddress);
}
else
{
VendorPreActivateSourceHook();
// power on the TV
- bool bActiveSourceFailed(false);
- if (m_processor->GetDevice(CECDEVICE_TV)->GetPowerStatus(m_busDevice->GetLogicalAddress()) != CEC_POWER_STATUS_ON)
- bActiveSourceFailed = !m_busDevice->TransmitImageViewOn();
+ bool bActiveSourceFailed = !m_busDevice->TransmitImageViewOn();
// check if we're allowed to switch sources
bool bSourceSwitchAllowed = SourceSwitchAllowed();