X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2FCECProcessor.cpp;h=6749170cda71cd8310c859d54ae037e628f5a2d6;hb=dad75c6cfa3c1a1c12eeca10190f14831c435325;hp=38d5992541ad297cc82207ccc0ce404c1c5459a7;hpb=237d091c2c7449b8522a6fda6295820eb4545ae1;p=deb_libcec.git diff --git a/src/lib/CECProcessor.cpp b/src/lib/CECProcessor.cpp index 38d5992..6749170 100644 --- a/src/lib/CECProcessor.cpp +++ b/src/lib/CECProcessor.cpp @@ -245,12 +245,17 @@ void *CCECProcessor::Process(void) // check whether the TV is present and responding if (tvPresentCheck.TimeLeft() == 0) { - if (!m_busDevices->At(CECDEVICE_TV)->IsPresent()) + CCECClient *primary = GetPrimaryClient(); + // only check whether the tv responds to polls when a client is connected and not in monitoring mode + if (primary && primary->GetConfiguration()->bMonitorOnly != 1) { - libcec_parameter param; - param.paramType = CEC_PARAMETER_TYPE_STRING; - param.paramData = "TV does not respond to CEC polls"; - GetPrimaryClient()->Alert(CEC_ALERT_TV_POLL_FAILED, param); + if (!m_busDevices->At(CECDEVICE_TV)->IsPresent()) + { + libcec_parameter param; + param.paramType = CEC_PARAMETER_TYPE_STRING; + param.paramData = (void*)"TV does not respond to CEC polls"; + primary->Alert(CEC_ALERT_TV_POLL_FAILED, param); + } } tvPresentCheck.Init(TV_PRESENT_CHECK_INTERVAL); } @@ -480,13 +485,7 @@ void CCECProcessor::TransmitAbort(cec_logical_address source, cec_logical_addres void CCECProcessor::ProcessCommand(const cec_command &command) { // log the command - CStdString dataStr; - dataStr.Format(">> %1x%1x", command.initiator, command.destination); - if (command.opcode_set == 1) - dataStr.AppendFormat(":%02x", command.opcode); - for (uint8_t iPtr = 0; iPtr < command.parameters.size; iPtr++) - dataStr.AppendFormat(":%02x", (unsigned int)command.parameters[iPtr]); - m_libcec->AddLog(CEC_LOG_TRAFFIC, dataStr.c_str()); + m_libcec->AddLog(CEC_LOG_TRAFFIC, ToString(command).c_str()); // find the initiator CCECBusDevice *device = m_busDevices->At(command.initiator); @@ -712,7 +711,7 @@ bool CCECProcessor::AllocateLogicalAddresses(CCECClient* client) // replace a previous client CLockObject lock(m_mutex); m_clients.erase((*it)->GetLogicalAddress()); - m_clients.insert(make_pair((*it)->GetLogicalAddress(), client)); + m_clients.insert(make_pair((*it)->GetLogicalAddress(), client)); } // set the new ackmask