bool CCECProcessor::Start(void)
{
if (!m_communication || !m_communication->IsOpen())
+ {
+ m_controller->AddLog(CEC_LOG_ERROR, "connection is closed");
return false;
+ }
if (!SetLogicalAddress(m_iLogicalAddress))
{
{
m_controller->AddLog(CEC_LOG_DEBUG, "processor thread started");
- while (!m_bStop)
+ while (!IsStopped())
{
bool bParseFrame(false);
{
cec_frame msg;
msg.clear();
- if (!m_bStop && m_communication->IsOpen() && m_communication->Read(msg, CEC_BUTTON_TIMEOUT))
- bParseFrame = ParseMessage(msg);
+ if (m_communication->IsOpen() && m_communication->Read(msg, CEC_BUTTON_TIMEOUT))
+ bParseFrame = ParseMessage(msg) && !IsStopped();
}
- if (!m_bStop && bParseFrame)
+ if (bParseFrame)
ParseCurrentFrame();
- if (!m_bStop)
- {
- m_controller->CheckKeypressTimeout();
+ m_controller->CheckKeypressTimeout();
+
+ if (!IsStopped())
Sleep(50);
- }
}
return NULL;
frame.clear();
frame.push_back(GetSourceDestination(address));
- frame.push_back((uint8_t) CEC_OPCODE_TEXT_VIEW_ON);
+ frame.push_back((uint8_t) CEC_OPCODE_IMAGE_VIEW_ON);
return Transmit(frame);
}
}
else if (destination == (uint8_t) CECDEVICE_BROADCAST)
{
+ CStdString strLog;
if (opCode == CEC_OPCODE_REQUEST_ACTIVE_SOURCE)
{
+ strLog.Format("%i requests active source", initiator);
+ m_controller->AddLog(CEC_LOG_DEBUG, strLog.c_str());
BroadcastActiveSource();
}
else if (opCode == CEC_OPCODE_SET_STREAM_PATH)
if (m_currentframe.size >= 4)
{
int streamaddr = ((int)m_currentframe.data[2] << 8) | ((int)m_currentframe.data[3]);
- CStdString strLog;
strLog.Format("%i requests stream path from physical address %04x", initiator, streamaddr);
m_controller->AddLog(CEC_LOG_DEBUG, strLog.c_str());
if (streamaddr == m_physicaladdress)