cec: moved SetLineTimeout() to CAdapterCommunication
[deb_libcec.git] / src / lib / AdapterCommunication.cpp
index fc650f0651f82a986dd2cfe7df730d47dfa4b033..3a1cfeb735b022749de36aa61cb18f4622d62d02 100644 (file)
@@ -246,7 +246,8 @@ void CCECAdapterMessage::push_escaped(uint8_t byte)
 
 CAdapterCommunication::CAdapterCommunication(CCECProcessor *processor) :
     m_port(NULL),
-    m_processor(processor)
+    m_processor(processor),
+    m_iLineTimeout(0)
 {
   m_port = new CSerialPort;
 }
@@ -495,6 +496,27 @@ bool CAdapterCommunication::PingAdapter(void)
   return bReturn;
 }
 
+bool CAdapterCommunication::SetLineTimeout(uint8_t iTimeout)
+{
+  bool bReturn(m_iLineTimeout != iTimeout);
+
+  if (!bReturn)
+  {
+    CCECAdapterMessage *output = new CCECAdapterMessage;
+
+    output->push_back(MSGSTART);
+    output->push_escaped(MSGCODE_TRANSMIT_IDLETIME);
+    output->push_escaped(iTimeout);
+    output->push_back(MSGEND);
+
+    if ((bReturn = Write(output)) == false)
+      m_processor->AddLog(CEC_LOG_ERROR, "could not set the idletime");
+    delete output;
+  }
+
+  return bReturn;
+}
+
 bool CAdapterCommunication::IsOpen(void) const
 {
   return !IsStopped() && m_port->IsOpen() && IsRunning();