{
device->SetActiveSource();
return device->TransmitPhysicalAddress() &&
+ device->TransmitImageViewOn() &&
device->TransmitActiveSource();
}
}
if (device && m_busDevice->MyLogicalAddressContains(device->GetLogicalAddress()))
{
device->SetActiveSource();
+ device->TransmitImageViewOn();
device->TransmitActiveSource();
device->SetMenuState(CEC_MENU_STATE_ACTIVATED);
if (device->MyLogicalAddressContains(device->GetLogicalAddress()))
{
device->SetActiveSource();
+ device->TransmitImageViewOn();
device->TransmitActiveSource();
if (device->GetType() == CEC_DEVICE_TYPE_PLAYBACK_DEVICE ||
}
}
+bool CCECCommandHandler::PowerOn(const cec_logical_address iInitiator, const cec_logical_address iDestination)
+{
+ if (iDestination == CECDEVICE_TV)
+ return TransmitImageViewOn(iInitiator, iDestination);
+
+ return TransmitKeypress(iInitiator, iDestination, CEC_USER_CONTROL_CODE_POWER) &&
+ TransmitKeyRelease(iInitiator, iDestination);
+}
+
bool CCECCommandHandler::TransmitImageViewOn(const cec_logical_address iInitiator, const cec_logical_address iDestination)
{
cec_command command;
primary->SetPowerStatus(CEC_POWER_STATUS_ON);
primary->SetMenuState(CEC_MENU_STATE_ACTIVATED);
- if (m_processor->GetPrimaryDevice()->GetPhysicalAddress(false) != 0xffff)
+ if (m_busDevice->GetStatus(false) == CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC)
{
- m_processor->SetActiveSource();
- primary->TransmitMenuState(m_busDevice->GetLogicalAddress());
+ 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;
}
}