cec: added CanPersistConfiguration()/cec_can_persist_configuration() and PersistConfi...
[deb_libcec.git] / src / lib / adapter / USBCECAdapterCommunication.h
index 7aa03507d57b91734887dc3d72dfdc7b2086506a..659e65922d1a519fb946ffda8a7817d071f68e71 100644 (file)
@@ -31,7 +31,7 @@
  *     http://www.pulse-eight.net/
  */
 
-#include <cectypes.h>
+#include "../../../include/cectypes.h"
 #include "../platform/threads/threads.h"
 #include "../platform/util/buffer.h"
 #include "AdapterCommunication.h"
@@ -52,7 +52,7 @@ namespace CEC
     CUSBCECAdapterCommunication(CCECProcessor *processor, const char *strPort, uint16_t iBaudRate = 38400);
     virtual ~CUSBCECAdapterCommunication();
 
-    virtual bool Open(uint32_t iTimeoutMs = 10000);
+    virtual bool Open(IAdapterCommunicationCallback *cb, uint32_t iTimeoutMs = 10000);
     virtual void Close(void);
     virtual bool IsOpen(void);
     virtual CStdString GetError(void) const;
@@ -65,16 +65,19 @@ namespace CEC
     virtual bool SetAckMask(uint16_t iMask);
     virtual bool PingAdapter(void);
     virtual uint16_t GetFirmwareVersion(void);
+    virtual bool SetControlledMode(bool controlled);
+    virtual bool PersistConfiguration(libcec_configuration * UNUSED(configuration)) { return false; } // TODO
 
     void *Process(void);
   private:
+    bool CheckAdapter(uint32_t iTimeoutMs = 10000);
     bool Write(CCECAdapterMessage *data);
     bool Read(CCECAdapterMessage &msg, uint32_t iTimeout = 1000);
     bool ParseMessage(const CCECAdapterMessage &msg);
     void SendMessageToAdapter(CCECAdapterMessage *msg);
     void WriteNextCommand(void);
     void AddData(uint8_t *data, size_t iLen);
-    bool ReadFromDevice(uint32_t iTimeout);
+    bool ReadFromDevice(uint32_t iTimeout, size_t iSize = 256);
     bool WaitForAck(CCECAdapterMessage &message);
 
     PLATFORM::ISocket *                          m_port;
@@ -90,5 +93,6 @@ namespace CEC
     CCECAdapterMessage                           m_currentAdapterMessage;
     bool                                         m_bNextIsEscaped;
     bool                                         m_bGotStart;
+    IAdapterCommunicationCallback *              m_callback;
   };
 };