cec: added the firmware version to libcec_configuration (read-only). bumped server...
[deb_libcec.git] / src / lib / adapter / USBCECAdapterMessage.h
index 169c115dc4fdef55ca8b34637e3951ec089e36cb..4ff920a9060c8883b5461b4db289359ad463a256 100644 (file)
@@ -38,7 +38,8 @@ namespace CEC
   class CCECAdapterMessage
   {
   public:
-    CCECAdapterMessage(void)
+    CCECAdapterMessage(void) :
+        event(false)
     {
       Clear();
     }
@@ -108,7 +109,7 @@ namespace CEC
       }
       else
       {
-        strMsg = MessageCodeAsString();
+        strMsg = ToString(Message());
 
         switch (Message())
         {
@@ -138,89 +139,97 @@ namespace CEC
       return strMsg;
     }
 
-    CStdString MessageCodeAsString(void) const
+    static const char *ToString(cec_adapter_messagecode msgCode)
     {
-      CStdString strMsg;
-      switch (Message())
+      switch (msgCode)
       {
       case MSGCODE_NOTHING:
-        strMsg = "NOTHING";
-        break;
+        return "NOTHING";
       case MSGCODE_PING:
-        strMsg = "PING";
-        break;
+        return "PING";
       case MSGCODE_TIMEOUT_ERROR:
-        strMsg = "TIMEOUT";
-        break;
+        return "TIMEOUT";
       case MSGCODE_HIGH_ERROR:
-        strMsg = "HIGH_ERROR";
-        break;
+        return "HIGH_ERROR";
       case MSGCODE_LOW_ERROR:
-        strMsg = "LOW_ERROR";
-        break;
+        return "LOW_ERROR";
       case MSGCODE_FRAME_START:
-        strMsg = "FRAME_START";
-        break;
+        return "FRAME_START";
       case MSGCODE_FRAME_DATA:
-        strMsg = "FRAME_DATA";
-        break;
+        return "FRAME_DATA";
       case MSGCODE_RECEIVE_FAILED:
-        strMsg = "RECEIVE_FAILED";
-        break;
+        return "RECEIVE_FAILED";
       case MSGCODE_COMMAND_ACCEPTED:
-        strMsg = "COMMAND_ACCEPTED";
-        break;
+        return "COMMAND_ACCEPTED";
       case MSGCODE_COMMAND_REJECTED:
-        strMsg = "COMMAND_REJECTED";
-        break;
+        return "COMMAND_REJECTED";
       case MSGCODE_SET_ACK_MASK:
-        strMsg = "SET_ACK_MASK";
-        break;
+        return "SET_ACK_MASK";
       case MSGCODE_TRANSMIT:
-        strMsg = "TRANSMIT";
-        break;
+        return "TRANSMIT";
       case MSGCODE_TRANSMIT_EOM:
-        strMsg = "TRANSMIT_EOM";
-        break;
+        return "TRANSMIT_EOM";
       case MSGCODE_TRANSMIT_IDLETIME:
-        strMsg = "TRANSMIT_IDLETIME";
-        break;
+        return "TRANSMIT_IDLETIME";
       case MSGCODE_TRANSMIT_ACK_POLARITY:
-        strMsg = "TRANSMIT_ACK_POLARITY";
-        break;
+        return "TRANSMIT_ACK_POLARITY";
       case MSGCODE_TRANSMIT_LINE_TIMEOUT:
-        strMsg = "TRANSMIT_LINE_TIMEOUT";
-        break;
+        return "TRANSMIT_LINE_TIMEOUT";
       case MSGCODE_TRANSMIT_SUCCEEDED:
-        strMsg = "TRANSMIT_SUCCEEDED";
-        break;
+        return "TRANSMIT_SUCCEEDED";
       case MSGCODE_TRANSMIT_FAILED_LINE:
-        strMsg = "TRANSMIT_FAILED_LINE";
-        break;
+        return "TRANSMIT_FAILED_LINE";
       case MSGCODE_TRANSMIT_FAILED_ACK:
-        strMsg = "TRANSMIT_FAILED_ACK";
-        break;
+        return "TRANSMIT_FAILED_ACK";
       case MSGCODE_TRANSMIT_FAILED_TIMEOUT_DATA:
-        strMsg = "TRANSMIT_FAILED_TIMEOUT_DATA";
-        break;
+        return "TRANSMIT_FAILED_TIMEOUT_DATA";
       case MSGCODE_TRANSMIT_FAILED_TIMEOUT_LINE:
-        strMsg = "TRANSMIT_FAILED_TIMEOUT_LINE";
-        break;
+        return "TRANSMIT_FAILED_TIMEOUT_LINE";
       case MSGCODE_FIRMWARE_VERSION:
-        strMsg = "FIRMWARE_VERSION";
-        break;
+        return "FIRMWARE_VERSION";
       case MSGCODE_START_BOOTLOADER:
-        strMsg = "START_BOOTLOADER";
-        break;
+        return "START_BOOTLOADER";
       case MSGCODE_FRAME_EOM:
-        strMsg = "FRAME_EOM";
-        break;
+        return "FRAME_EOM";
       case MSGCODE_FRAME_ACK:
-        strMsg = "FRAME_ACK";
-        break;
+        return "FRAME_ACK";
+      case MSGCODE_SET_POWERSTATE:
+        return "SET_POWERSTATE";
+      case MSGCODE_SET_CONTROLLED:
+        return "SET_CONTROLLED";
+      case MSGCODE_GET_AUTO_ENABLED:
+        return "GET_AUTO_ENABLED";
+      case MSGCODE_SET_AUTO_ENABLED:
+        return "SET_AUTO_ENABLED";
+      case MSGCODE_GET_DEFAULT_LOGICAL_ADDRESS:
+        return "GET_DEFAULT_LOGICAL_ADDRESS";
+      case MSGCODE_SET_DEFAULT_LOGICAL_ADDRESS:
+        return "SET_DEFAULT_LOGICAL_ADDRESS";
+      case MSGCODE_GET_LOGICAL_ADDRESS_MASK:
+        return "GET_LOGICAL_ADDRESS_MASK";
+      case MSGCODE_SET_LOGICAL_ADDRESS_MASK:
+        return "SET_LOGICAL_ADDRESS_MASK";
+      case MSGCODE_GET_PHYSICAL_ADDRESS:
+        return "GET_PHYSICAL_ADDRESS";
+      case MSGCODE_SET_PHYSICAL_ADDRESS:
+        return "SET_PHYSICAL_ADDRESS";
+      case MSGCODE_GET_DEVICE_TYPE:
+        return "GET_DEVICE_TYPE";
+      case MSGCODE_SET_DEVICE_TYPE:
+        return "SET_DEVICE_TYPE";
+      case MSGCODE_GET_HDMI_VERSION:
+        return "GET_HDMI_VERSION";
+      case MSGCODE_SET_HDMI_VERSION:
+        return "SET_HDMI_VERSION";
+      case MSGCODE_GET_OSD_NAME:
+        return "GET_OSD_NAME";
+      case MSGCODE_SET_OSD_NAME:
+        return "SET_OSD_NAME";
+      case MSGCODE_WRITE_EEPROM:
+        return "WRITE_EEPROM";
       }
 
-      return strMsg;
+      return "unknown";
     }
 
     uint8_t operator[](uint8_t pos) const
@@ -262,6 +271,17 @@ namespace CEC
       packet.Shift(iShiftBy);
     }
 
+    void Append(CCECAdapterMessage &data)
+    {
+      Append(data.packet);
+    }
+
+    void Append(cec_datapacket &data)
+    {
+      for (uint8_t iPtr = 0; iPtr < data.size; iPtr++)
+        PushBack(data[iPtr]);
+    }
+
     void PushBack(uint8_t add)
     {
       packet.PushBack(add);
@@ -340,17 +360,16 @@ namespace CEC
           CECDEVICE_UNKNOWN;
     }
 
-    uint8_t                   maxTries;
-    uint8_t                   tries;
-    cec_adapter_messagecode   reply;
-    cec_datapacket            packet;
-    cec_adapter_message_state state;
-    int32_t                   transmit_timeout;
-    bool                      isTransmission;
-    bool                      expectControllerAck;
-    uint8_t                   lineTimeout;
-    uint8_t                   retryTimeout;
-    PLATFORM::CMutex          mutex;
-    PLATFORM::CCondition      condition;
+    uint8_t                               maxTries;
+    uint8_t                               tries;
+    cec_adapter_messagecode               reply;
+    cec_datapacket                        packet;
+    cec_adapter_message_state             state;
+    int32_t                               transmit_timeout;
+    bool                                  isTransmission;
+    bool                                  expectControllerAck;
+    uint8_t                               lineTimeout;
+    uint8_t                               retryTimeout;
+    PLATFORM::CEvent                      event;
   };
 }