* 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"
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;
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;
CCECAdapterMessage m_currentAdapterMessage;
bool m_bNextIsEscaped;
bool m_bGotStart;
+ IAdapterCommunicationCallback * m_callback;
};
};