+void CCECPlaybackDevice::SetDeckControlMode(cec_deck_control_mode mode)
+{
+ CLockObject lock(m_mutex);
+ if (m_deckControlMode != mode)
+ {
+ m_processor->GetLib()->AddLog(CEC_LOG_DEBUG, ">> %s (%X): deck control mode changed from '%s' to '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(m_deckControlMode), ToString(mode));
+ m_deckControlMode = mode;
+ }
+}
+
+bool CCECPlaybackDevice::TransmitDeckStatus(cec_logical_address dest, bool bIsReply)
+{
+ cec_deck_info state;
+ {
+ CLockObject lock(m_mutex);
+ m_processor->GetLib()->AddLog(CEC_LOG_DEBUG, "<< %s (%X) -> %s (%X): deck status '%s'", GetLogicalAddressName(), m_iLogicalAddress, ToString(dest), dest, ToString(m_deckStatus));
+ state = m_deckStatus;
+ }
+
+ return m_handler->TransmitDeckStatus(m_iLogicalAddress, dest, state, bIsReply);
+}
+
+void CCECPlaybackDevice::ResetDeviceStatus(void)
+{
+ CLockObject lock(m_mutex);
+ m_deckStatus = CEC_DECK_INFO_STOP;
+ m_deckControlMode = CEC_DECK_CONTROL_MODE_STOP;
+ CCECBusDevice::ResetDeviceStatus();