cec: call Close() when the connection could not be (fully) opened in CUSBCECAdapterCo...
[deb_libcec.git] / src / lib / adapter / USBCECAdapterCommunication.h
index 5db99606a96e89e885445d3138767c456f6383d6..5db5a1a0674310a9b4fe94a9fc517fe211eea94f 100644 (file)
@@ -67,7 +67,7 @@ namespace CEC
   {
   public:
     CUSBCECAdapterCommunication(CCECProcessor *processor, const char *strPort, uint16_t iBaudRate = 38400);
-    virtual ~CUSBCECAdapterCommunication();
+    virtual ~CUSBCECAdapterCommunication() {};
 
     virtual bool Open(IAdapterCommunicationCallback *cb, uint32_t iTimeoutMs = 10000, bool bSkipChecks = false);
     virtual void Close(void);
@@ -90,8 +90,8 @@ namespace CEC
 
     void *Process(void);
   private:
-    bool SendCommand(cec_adapter_messagecode msgCode, CCECAdapterMessage &params, bool bExpectAck = true, bool bIsTransmission = false, bool bSendDirectly = true);
-    cec_datapacket GetSetting(cec_adapter_messagecode msgCode);
+    bool SendCommand(cec_adapter_messagecode msgCode, CCECAdapterMessage &params, bool bExpectAck = true, bool bIsTransmission = false, bool bSendDirectly = true, bool bIsRetry = false);
+    cec_datapacket GetSetting(cec_adapter_messagecode msgCode, uint8_t iResponseLength);
 
     bool SetSettingAutoEnabled(bool enabled);
     bool GetSettingAutoEnabled(bool &enabled);
@@ -138,12 +138,13 @@ namespace CEC
     uint8_t                                      m_iLineTimeout;
     uint16_t                                     m_iFirmwareVersion;
     cec_command                                  m_currentframe;
-    cec_logical_address                          m_lastInitiator;
+    cec_logical_address                          m_lastDestination;
     CCECAdapterMessage                           m_currentAdapterMessage;
     bool                                         m_bNextIsEscaped;
     bool                                         m_bGotStart;
     IAdapterCommunicationCallback *              m_callback;
     CUSBCECAdapterProcessor *                    m_messageProcessor;
     bool                                         m_bInitialised;
+    bool                                         m_bWaitingForAck[15];
   };
 };