From: Lars Op den Kamp Date: Wed, 28 Mar 2012 18:51:20 +0000 (+0200) Subject: cec: removed the message processor thread in CUSBCECAdapterCommunication - not needed... X-Git-Tag: upstream/2.2.0~1^2~31^2~42 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=32b6975452767e5e38371de6531559818c7b7d96;p=deb_libcec.git cec: removed the message processor thread in CUSBCECAdapterCommunication - not needed anymore after the last commits. speeds up command processing a bit too --- diff --git a/src/lib/adapter/USBCECAdapterCommunication.cpp b/src/lib/adapter/USBCECAdapterCommunication.cpp index 8f3bb7f..5ca36bd 100644 --- a/src/lib/adapter/USBCECAdapterCommunication.cpp +++ b/src/lib/adapter/USBCECAdapterCommunication.cpp @@ -42,24 +42,6 @@ using namespace PLATFORM; #define CEC_ADAPTER_PING_TIMEOUT 15000 -void *CUSBCECAdapterProcessor::Process(void) -{ - cec_command command; - while (!IsStopped()) - { - if (m_inBuffer.Pop(command)) - m_callback->OnCommandReceived(command); - Sleep(5); - } - - return NULL; -} - -void CUSBCECAdapterProcessor::AddCommand(cec_command command) -{ - m_inBuffer.Push(command); -} - CUSBCECAdapterCommunication::CUSBCECAdapterCommunication(CCECProcessor *processor, const char *strPort, uint16_t iBaudRate /* = 38400 */) : m_port(NULL), m_processor(processor), @@ -69,7 +51,6 @@ CUSBCECAdapterCommunication::CUSBCECAdapterCommunication(CCECProcessor *processo m_lastDestination(CECDEVICE_UNKNOWN), m_bNextIsEscaped(false), m_bGotStart(false), - m_messageProcessor(NULL), m_bInitialised(false) { for (unsigned int iPtr = 0; iPtr < 15; iPtr++) @@ -235,9 +216,6 @@ void CUSBCECAdapterCommunication::Close(void) void *CUSBCECAdapterCommunication::Process(void) { - m_messageProcessor = new CUSBCECAdapterProcessor(m_callback); - m_messageProcessor->CreateThread(); - cec_command command; command.Clear(); bool bCommandReceived(false); @@ -252,7 +230,7 @@ void *CUSBCECAdapterCommunication::Process(void) /* push the next command to the callback method if there is one */ if (!IsStopped() && bCommandReceived) - m_messageProcessor->AddCommand(command); + m_callback->OnCommandReceived(command); /* ping the adapter every 15 seconds */ if (pingTimeout.TimeLeft() == 0) @@ -268,11 +246,6 @@ void *CUSBCECAdapterCommunication::Process(void) } } - /* stop the message processor */ - m_messageProcessor->StopThread(); - delete m_messageProcessor; - m_messageProcessor = NULL; - /* notify all threads that are waiting on messages to be sent */ CCECAdapterMessage *msg(NULL); while (m_outBuffer.Pop(msg)) diff --git a/src/lib/adapter/USBCECAdapterCommunication.h b/src/lib/adapter/USBCECAdapterCommunication.h index 4e7944e..227a7e2 100644 --- a/src/lib/adapter/USBCECAdapterCommunication.h +++ b/src/lib/adapter/USBCECAdapterCommunication.h @@ -46,23 +46,6 @@ 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 CUSBCECAdapterCommunication : public IAdapterCommunication, private PLATFORM::CThread { public: @@ -143,7 +126,6 @@ namespace CEC bool m_bNextIsEscaped; bool m_bGotStart; IAdapterCommunicationCallback * m_callback; - CUSBCECAdapterProcessor * m_messageProcessor; bool m_bInitialised; bool m_bWaitingForAck[15]; };