return SetActiveSource();
}
-bool CCECProcessor::SetDeckControlMode(cec_deck_control_mode mode)
+bool CCECProcessor::SetDeckControlMode(cec_deck_control_mode mode, bool bSendUpdate /* = true */)
{
bool bReturn(false);
if (device)
{
((CCECPlaybackDevice *) device)->SetDeckControlMode(mode);
+ if (bSendUpdate)
+ ((CCECPlaybackDevice *) device)->TransmitDeckStatus(CECDEVICE_TV);
bReturn = true;
}
return bReturn;
}
-bool CCECProcessor::SetDeckInfo(cec_deck_info info)
+bool CCECProcessor::SetDeckInfo(cec_deck_info info, bool bSendUpdate /* = true */)
{
bool bReturn(false);
if (device)
{
((CCECPlaybackDevice *) device)->SetDeckStatus(info);
+ if (bSendUpdate)
+ ((CCECPlaybackDevice *) device)->TransmitDeckStatus(CECDEVICE_TV);
bReturn = true;
}
device->m_bActiveSource = true;
device->m_powerStatus = CEC_POWER_STATUS_ON;
- if (m_logicalAddresses.isset(device->m_iLogicalAddress))
- bReturn = device->TransmitActiveSource();
- else
- bReturn = true;
+ bReturn = true;
}
return bReturn;
return true;
}
+bool CCECProcessor::SetMenuState(cec_menu_state state, bool bSendUpdate /* = true */)
+{
+ for (uint8_t iPtr = 0; iPtr < 16; iPtr++)
+ {
+ if (m_logicalAddresses[iPtr])
+ m_busDevices[iPtr]->SetMenuState(state);
+ }
+
+ if (bSendUpdate)
+ m_busDevices[m_logicalAddresses.primary]->TransmitMenuState(CECDEVICE_TV);
+
+ return true;
+}
+
bool CCECProcessor::SetPhysicalAddress(uint16_t iPhysicalAddress)
{
if (!m_logicalAddresses.empty() && m_busDevices[m_logicalAddresses.primary])