X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fadapter%2FUSBCECAdapterCommunication.h;h=4ca8e87e1810c794c088dc4a15a7c053422e129c;hb=56e53c14cf072c449743fa36f2f80318cd64bfc3;hp=4e7944eb5eb04964ed8c4f071b5d16cc41e1e30d;hpb=f80cd2082cb6b36e56e00d42c0f2fc104565f7e5;p=deb_libcec.git diff --git a/src/lib/adapter/USBCECAdapterCommunication.h b/src/lib/adapter/USBCECAdapterCommunication.h index 4e7944e..4ca8e87 100644 --- a/src/lib/adapter/USBCECAdapterCommunication.h +++ b/src/lib/adapter/USBCECAdapterCommunication.h @@ -45,23 +45,7 @@ namespace PLATFORM namespace CEC { 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 m_inBuffer; - }; + class CAdapterPingThread; class CUSBCECAdapterCommunication : public IAdapterCommunication, private PLATFORM::CThread { @@ -123,7 +107,6 @@ namespace CEC 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, size_t iSize = 256); bool WaitForAck(CCECAdapterMessage &message); @@ -131,7 +114,6 @@ namespace CEC PLATFORM::ISocket * m_port; CCECProcessor * m_processor; PLATFORM::SyncedBuffer m_inBuffer; - PLATFORM::SyncedBuffer m_outBuffer; PLATFORM::CMutex m_mutex; PLATFORM::CCondition m_rcvCondition; volatile bool m_bHasData; @@ -143,8 +125,22 @@ namespace CEC bool m_bNextIsEscaped; bool m_bGotStart; IAdapterCommunicationCallback * m_callback; - CUSBCECAdapterProcessor * m_messageProcessor; bool m_bInitialised; bool m_bWaitingForAck[15]; + CAdapterPingThread * m_pingThread; + }; + + class CAdapterPingThread : public PLATFORM::CThread + { + public: + CAdapterPingThread(CUSBCECAdapterCommunication *com, uint32_t iTimeout) : + m_com(com), + m_timeout(iTimeout){} + virtual ~CAdapterPingThread(void) {} + + virtual void* Process(void); + private: + CUSBCECAdapterCommunication *m_com; + PLATFORM::CTimeout m_timeout; }; };