updated copyright messages for 2013
[deb_libcec.git] / src / lib / adapter / Pulse-Eight / USBCECAdapterMessage.cpp
index f213c1dda81238bac53ccac8a69aa051a70deee3..1d787536a1128a0f8109a248fb32073e01170704 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * 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.
@@ -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