}
}
+void CCECBusDevice::ImageViewOnSent(void)
+{
+ CLockObject lock(m_mutex);
+ if (m_powerStatus != CEC_POWER_STATUS_ON && m_powerStatus != CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON)
+ {
+ m_iLastPowerStateUpdate = GetTimeMs();
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s (%X): power status changed from '%s' to '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_powerStatus), ToString(CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON));
+ m_powerStatus = CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON;
+ }
+}
+
bool CCECBusDevice::RequestPowerStatus(const cec_logical_address initiator, bool bWaitForResponse /* = true */)
{
bool bReturn(false);
MarkBusy();
bImageViewOnSent = m_handler->TransmitImageViewOn(m_iLogicalAddress, CECDEVICE_TV);
MarkReady();
+
+ if (bImageViewOnSent)
+ {
+ CCECBusDevice* tv = m_processor->GetDevice(CECDEVICE_TV);
+ if (tv)
+ tv->ImageViewOnSent();
+ }
+
return bImageViewOnSent;
}
virtual cec_power_status GetCurrentPowerStatus(void);
virtual cec_power_status GetPowerStatus(const cec_logical_address initiator, bool bUpdate = false);
virtual void SetPowerStatus(const cec_power_status powerStatus);
+ virtual void ImageViewOnSent(void);
virtual bool RequestPowerStatus(const cec_logical_address initiator, bool bWaitForResponse = true);
virtual bool TransmitPowerState(const cec_logical_address destination, bool bIsReply);