/*
* This file is part of the libCEC(R) library.
*
- * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved.
+ * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved.
* libCEC(R) is an original work, containing original code.
*
* libCEC(R) is a trademark of Pulse-Eight Limited.
strMsg.AppendFormat(" %02x %s", At(2), IsEOM() ? "eom" : "");
break;
default:
- for (uint8_t iPtr = 2; iPtr < Size(); iPtr++)
- if (At(iPtr) != MSGEND)
- strMsg.AppendFormat(" %02x", At(iPtr));
+ if (Size() >= 2 && (Message() == MSGCODE_COMMAND_ACCEPTED || Message() == MSGCODE_COMMAND_REJECTED))
+ strMsg.AppendFormat(": %s", ToString((cec_adapter_messagecode)At(2)));
+ else
+ {
+ for (uint8_t iPtr = 2; iPtr < Size(); iPtr++)
+ if (At(iPtr) != MSGEND)
+ strMsg.AppendFormat(" %02x", At(iPtr));
+ }
break;
}
}
case MSGCODE_TRANSMIT_IDLETIME:
return "TRANSMIT_IDLETIME";
case MSGCODE_TRANSMIT_ACK_POLARITY:
- return "TRANSMIT_ACK_POLARITY";
+ return "CEC transmission";
case MSGCODE_TRANSMIT_LINE_TIMEOUT:
return "TRANSMIT_LINE_TIMEOUT";
case MSGCODE_TRANSMIT_SUCCEEDED:
return "SET_OSD_NAME";
case MSGCODE_WRITE_EEPROM:
return "WRITE_EEPROM";
+ case MSGCODE_GET_ADAPTER_TYPE:
+ return "GET_ADAPTER_TYPE";
default:
break;
}
packet.Clear();
lineTimeout = 3;
bNextByteIsEscaped = false;
+ bFireAndForget = false;
}
void CCECAdapterMessage::Shift(uint8_t iShiftBy)
MSGCODE_NOTHING;
}
+cec_adapter_messagecode CCECAdapterMessage::ResponseTo(void) const
+{
+ return packet.size >= 3 ?
+ (cec_adapter_messagecode) (packet.At(2) & ~(MSGCODE_FRAME_EOM | MSGCODE_FRAME_ACK)) :
+ MSGCODE_NOTHING;
+}
+
bool CCECAdapterMessage::IsTranmission(void) const
{
cec_adapter_messagecode msgCode = Message();
false;
}
-bool CCECAdapterMessage::IsError(void) const
+bool CCECAdapterMessage::MessageCodeIsError(const cec_adapter_messagecode code)
{
- cec_adapter_messagecode code = Message();
return (code == MSGCODE_HIGH_ERROR ||
- code == MSGCODE_LOW_ERROR ||
- code == MSGCODE_RECEIVE_FAILED ||
- code == MSGCODE_COMMAND_REJECTED ||
- code == MSGCODE_TRANSMIT_LINE_TIMEOUT ||
- code == MSGCODE_TRANSMIT_FAILED_LINE ||
- code == MSGCODE_TRANSMIT_FAILED_ACK ||
- code == MSGCODE_TRANSMIT_FAILED_TIMEOUT_DATA ||
- code == MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE);
+ code == MSGCODE_LOW_ERROR ||
+ code == MSGCODE_RECEIVE_FAILED ||
+ code == MSGCODE_COMMAND_REJECTED ||
+ code == MSGCODE_TRANSMIT_LINE_TIMEOUT ||
+ code == MSGCODE_TRANSMIT_FAILED_LINE ||
+ code == MSGCODE_TRANSMIT_FAILED_ACK ||
+ code == MSGCODE_TRANSMIT_FAILED_TIMEOUT_DATA ||
+ code == MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE);
+}
+
+bool CCECAdapterMessage::IsError(void) const
+{
+ return MessageCodeIsError(Message());
+}
+
+bool CCECAdapterMessage::ReplyIsError(void) const
+{
+ return MessageCodeIsError(Reply());
}
bool CCECAdapterMessage::NeedsRetry(void) const