X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2FCECProcessor.cpp;h=c83bdc05486d158140313c5a602840f2e0188478;hb=eafd9beda6b5e5aafaccd7a0e3de65c632d494e0;hp=e24d81246b2f5d07b4cc38103b0549b219570c49;hpb=edab6137b837014d85aedc0fd73e6863ca4478cd;p=deb_libcec.git diff --git a/src/lib/CECProcessor.cpp b/src/lib/CECProcessor.cpp index e24d812..c83bdc0 100644 --- a/src/lib/CECProcessor.cpp +++ b/src/lib/CECProcessor.cpp @@ -231,13 +231,17 @@ cec_power_status CCECProcessor::GetDevicePowerStatus(cec_logical_address iAddres bool CCECProcessor::Transmit(const cec_command &data) { + bool bReturn(false); LogOutput(data); - CCECAdapterMessagePtr output(new CCECAdapterMessage(data)); - return Transmit(output); + CCECAdapterMessage *output = new CCECAdapterMessage(data); + bReturn = Transmit(output); + delete output; + + return bReturn; } -bool CCECProcessor::Transmit(CCECAdapterMessagePtr output) +bool CCECProcessor::Transmit(CCECAdapterMessage *output) { bool bReturn(false); CLockObject lock(&m_mutex); @@ -247,7 +251,7 @@ bool CCECProcessor::Transmit(CCECAdapterMessagePtr output) return bReturn; else { - output->condition.Wait(&output->mutex, 1000); + output->condition.Wait(&output->mutex); if (output->state != ADAPTER_MESSAGE_STATE_SENT) { m_controller->AddLog(CEC_LOG_ERROR, "command was not sent"); @@ -300,6 +304,8 @@ bool CCECProcessor::WaitForTransmitSucceeded(uint8_t iLength, uint32_t iTimeout if ((bError = msg.is_error()) == false) { + m_controller->AddLog(bError ? CEC_LOG_WARNING : CEC_LOG_DEBUG, msg.ToString()); + switch(msg.message()) { case MSGCODE_COMMAND_ACCEPTED: @@ -385,7 +391,7 @@ void CCECProcessor::SetCurrentButton(cec_user_control_code iButtonCode) void CCECProcessor::AddCommand(const cec_command &command) { -// m_controller->AddCommand(command); + m_controller->AddCommand(command); } void CCECProcessor::AddKey(void) @@ -400,11 +406,12 @@ void CCECProcessor::AddLog(cec_log_level level, const CStdString &strMessage) bool CCECProcessor::SetAckMask(uint16_t iMask) { + bool bReturn(false); CStdString strLog; strLog.Format("setting ackmask to %2x", iMask); m_controller->AddLog(CEC_LOG_DEBUG, strLog.c_str()); - CCECAdapterMessagePtr output(new CCECAdapterMessage); + CCECAdapterMessage *output = new CCECAdapterMessage; output->push_back(MSGSTART); output->push_escaped(MSGCODE_SET_ACK_MASK); @@ -412,11 +419,10 @@ bool CCECProcessor::SetAckMask(uint16_t iMask) output->push_escaped((uint8_t)iMask); output->push_back(MSGEND); - if (!Transmit(output)) - { + if ((bReturn = Transmit(output)) == false) m_controller->AddLog(CEC_LOG_ERROR, "could not set the ackmask"); - return false; - } - return true; + delete output; + + return bReturn; }