cec: make all reads and write in CAdapterCommunication go through buffers, so we...
[deb_libcec.git] / src / lib / AdapterCommunication.h
index 4693d97d30bbff1903e02d229f3bd746e2d09a2b..32d4a157ebb7bf77a7eca084c91653cf46d0175b 100644 (file)
@@ -31,8 +31,9 @@
  *     http://www.pulse-eight.net/
  */
 
-#include <libcec/CECExports.h>
+#include <cectypes.h>
 #include "platform/threads.h"
+#include "util/buffer.h"
 #include <string>
 
 namespace CEC
@@ -62,16 +63,16 @@ namespace CEC
     static void FormatAdapterMessage(const cec_command &command, cec_adapter_message &packet);
 
   private:
+    void WriteNextCommand(void);
     void AddData(uint8_t *data, uint8_t iLen);
     bool ReadFromDevice(uint32_t iTimeout);
 
-    CSerialPort *        m_port;
-    CLibCEC *            m_controller;
-    uint8_t*             m_inbuf;
-    int16_t              m_iInbufSize;
-    int16_t              m_iInbufUsed;
-    CMutex               m_bufferMutex;
-    CMutex               m_commMutex;
-    CCondition           m_rcvCondition;
+    CSerialPort *                  m_port;
+    CLibCEC *                      m_controller;
+    CecBuffer<uint8_t>             m_inBuffer;
+    CecBuffer<cec_adapter_message> m_outBuffer;
+    CMutex                         m_bufferMutex;
+    CMutex                         m_commMutex;
+    CCondition                     m_rcvCondition;
   };
 };