{
class CCECProcessor;
+ class CUSBCECAdapterProcessor: public PLATFORM::CThread
+ {
+ public:
+ CUSBCECAdapterProcessor(IAdapterCommunicationCallback *cb) :
+ m_callback(cb) {};
+ virtual ~CUSBCECAdapterProcessor(void)
+ {
+ StopThread();
+ }
+
+ void *Process(void);
+ void AddCommand(cec_command command);
+ private:
+ IAdapterCommunicationCallback * m_callback;
+ PLATFORM::SyncedBuffer<cec_command> m_inBuffer;
+ };
+
class CUSBCECAdapterCommunication : public IAdapterCommunication, private PLATFORM::CThread
{
public:
CUSBCECAdapterCommunication(CCECProcessor *processor, const char *strPort, uint16_t iBaudRate = 38400);
virtual ~CUSBCECAdapterCommunication();
- virtual bool Open(IAdapterCommunicationCallback *cb, uint32_t iTimeoutMs = 10000);
+ virtual bool Open(IAdapterCommunicationCallback *cb, uint32_t iTimeoutMs = 10000, bool bSkipChecks = false);
virtual void Close(void);
virtual bool IsOpen(void);
virtual CStdString GetError(void) const;
PLATFORM::SyncedBuffer<CCECAdapterMessage *> m_inBuffer;
PLATFORM::SyncedBuffer<CCECAdapterMessage *> m_outBuffer;
PLATFORM::CMutex m_mutex;
- PLATFORM::CCondition<volatile bool &> m_rcvCondition;
+ PLATFORM::CCondition<volatile bool> m_rcvCondition;
volatile bool m_bHasData;
uint8_t m_iLineTimeout;
uint16_t m_iFirmwareVersion;
bool m_bNextIsEscaped;
bool m_bGotStart;
IAdapterCommunicationCallback * m_callback;
+ CUSBCECAdapterProcessor * m_messageProcessor;
+ bool m_bInitialised;
};
};