X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fadapter%2FUSBCECAdapterCommunication.cpp;h=95c46946c70fd5638c4add7688e63e83929ec717;hb=120d4ca86e6f7e187e2d4a97e8fe9b8e31c85c8c;hp=1b768539faeb21cd02d8c598ed2c7384f872e09a;hpb=8355489019511d3ba83ef708a0f1ab0f53f649f7;p=deb_libcec.git diff --git a/src/lib/adapter/USBCECAdapterCommunication.cpp b/src/lib/adapter/USBCECAdapterCommunication.cpp index 1b76853..95c4694 100644 --- a/src/lib/adapter/USBCECAdapterCommunication.cpp +++ b/src/lib/adapter/USBCECAdapterCommunication.cpp @@ -201,6 +201,7 @@ void *CUSBCECAdapterCommunication::Process(void) m_messageProcessor->CreateThread(); cec_command command; + command.Clear(); bool bCommandReceived(false); while (!IsStopped()) { @@ -319,7 +320,7 @@ bool CUSBCECAdapterCommunication::Read(CCECAdapterMessage &msg, uint32_t iTimeou if (iTimeout == 0 || !m_rcvCondition.Wait(m_mutex, m_bHasData, iTimeout)) return false; m_inBuffer.Pop(buf); - m_bHasData = m_inBuffer.Size() > 0; + m_bHasData = !m_inBuffer.IsEmpty(); } if (buf) @@ -390,6 +391,7 @@ bool CUSBCECAdapterCommunication::ParseMessage(const CCECAdapterMessage &msg) if (msg.IsEmpty()) return bEom; + CLockObject adapterLock(m_mutex); switch(msg.Message()) { case MSGCODE_FRAME_START: @@ -662,7 +664,7 @@ void CUSBCECAdapterCommunication::AddData(uint8_t *data, size_t iLen) m_bGotStart = false; m_bNextIsEscaped = false; m_bHasData = true; - m_rcvCondition.Signal(); + m_rcvCondition.Broadcast(); } else if (m_bNextIsEscaped) {