void *CCECProcessor::Process(void)
{
+ cec_command command;
+ CCECAdapterMessage msg;
+
+ SetAckMask(0x1 << (uint8_t)m_iLogicalAddress);
+
{
CLockObject lock(&m_mutex);
m_controller->AddLog(CEC_LOG_DEBUG, "processor thread started");
m_startCondition.Signal();
}
- cec_command command;
- CCECAdapterMessage msg;
-
- SetAckMask(0x1 << (uint8_t)m_iLogicalAddress);
-
while (!IsStopped())
{
bool bParseFrame(false);
continue;
}
- bError = msg.is_error();
- m_controller->AddLog(msg.is_error() ? CEC_LOG_WARNING : CEC_LOG_DEBUG, msg.ToString());
-
- switch(msg.message())
+ if ((bError = msg.is_error()) == false)
{
- case MSGCODE_COMMAND_ACCEPTED:
- if (iPacketsLeft > 0)
- iPacketsLeft--;
- break;
- case MSGCODE_TRANSMIT_SUCCEEDED:
- bTransmitSucceeded = (iPacketsLeft == 0);
- bError = !bTransmitSucceeded;
- break;
- default:
- CStdString strLog;
- strLog.Format("received unexpected reply '%s' instead of ack", msg.MessageCodeAsString().c_str());
- m_controller->AddLog(CEC_LOG_WARNING, strLog);
- ParseMessage(msg);
- bError = true;
- break;
- }
+ m_controller->AddLog(bError ? CEC_LOG_WARNING : CEC_LOG_DEBUG, msg.ToString());
+
+ switch(msg.message())
+ {
+ case MSGCODE_COMMAND_ACCEPTED:
+ if (iPacketsLeft > 0)
+ iPacketsLeft--;
+ break;
+ case MSGCODE_TRANSMIT_SUCCEEDED:
+ bTransmitSucceeded = (iPacketsLeft == 0);
+ bError = !bTransmitSucceeded;
+ break;
+ default:
+ ParseMessage(msg);
+ }
- iNow = GetTimeMs();
+ iNow = GetTimeMs();
+ }
}
return bTransmitSucceeded && !bError;
void CCECProcessor::AddCommand(const cec_command &command)
{
-// m_controller->AddCommand(command);
+ m_controller->AddCommand(command);
}
void CCECProcessor::AddKey(void)