{
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);
void *Process(void);
private:
- bool SendCommand(cec_adapter_messagecode msgCode, CCECAdapterMessage ¶ms, bool bExpectAck = true, bool bIsTransmission = false, bool bSendDirectly = true);
- cec_datapacket GetSetting(cec_adapter_messagecode msgCode);
+ bool SendCommand(cec_adapter_messagecode msgCode, CCECAdapterMessage ¶ms, 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);
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];
};
};