X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fadapter%2FPulse-Eight%2FUSBCECAdapterMessage.cpp;h=5756283a60d883acddd2bd05a4d2d4201d29c56b;hb=ebcedb051be7d8e1e19ecd3f0aa164baae252400;hp=f213c1dda81238bac53ccac8a69aa051a70deee3;hpb=b0a5e4fc9b66620b00f937f7e9a406bf22aaaf1d;p=deb_libcec.git diff --git a/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.cpp b/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.cpp index f213c1d..5756283 100644 --- a/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.cpp +++ b/src/lib/adapter/Pulse-Eight/USBCECAdapterMessage.cpp @@ -126,9 +126,14 @@ std::string CCECAdapterMessage::ToString(void) const 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; } } @@ -169,7 +174,7 @@ const char *CCECAdapterMessage::ToString(cec_adapter_messagecode msgCode) 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: @@ -224,6 +229,8 @@ const char *CCECAdapterMessage::ToString(cec_adapter_messagecode msgCode) return "SET_OSD_NAME"; case MSGCODE_WRITE_EEPROM: return "WRITE_EEPROM"; + case MSGCODE_GET_ADAPTER_TYPE: + return "GET_ADAPTER_TYPE"; default: break; } @@ -259,6 +266,7 @@ void CCECAdapterMessage::Clear(void) packet.Clear(); lineTimeout = 3; bNextByteIsEscaped = false; + bFireAndForget = false; } void CCECAdapterMessage::Shift(uint8_t iShiftBy) @@ -329,6 +337,13 @@ cec_adapter_messagecode CCECAdapterMessage::Message(void) const 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(); @@ -363,18 +378,27 @@ bool CCECAdapterMessage::IsACK(void) const 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