Merge PR #32
[deb_libcec.git] / src / lib / CECTypeUtils.h
index 4b406f12edf271a641f01f1d9d7855688191932d..0eccdcc6f5a28379f493fe0aaf2a798474ab1af8 100644 (file)
@@ -31,6 +31,8 @@
  *     http://www.pulse-eight.net/
  */
 
+#include "lib/platform/util/StdString.h"
+
 namespace CEC
 {
   class CCECTypeUtils
@@ -491,6 +493,7 @@ namespace CEC
       case CEC_VENDOR_SONY:
         return "Sony";
       case CEC_VENDOR_TOSHIBA:
+      case CEC_VENDOR_TOSHIBA2:
         return "Toshiba";
       case CEC_VENDOR_AKAI:
         return "Akai";
@@ -514,6 +517,13 @@ namespace CEC
         return "Loewe";
       case CEC_VENDOR_DENON:
         return "Denon";
+      case CEC_VENDOR_MARANTZ:
+        return "Marantz";
+      case CEC_VENDOR_HARMAN_KARDON:
+      case CEC_VENDOR_HARMAN_KARDON2:
+        return "Harman/Kardon";
+      case CEC_VENDOR_PULSE_EIGHT:
+        return "Pulse Eight";
       default:
         return "Unknown";
       }
@@ -573,6 +583,12 @@ namespace CEC
         return "2.1.0";
       case CEC_CLIENT_VERSION_2_1_1:
         return "2.1.1";
+      case CEC_CLIENT_VERSION_2_1_2:
+        return "2.1.2";
+      case CEC_CLIENT_VERSION_2_1_3:
+        return "2.1.3";
+      case CEC_CLIENT_VERSION_2_1_4:
+        return "2.1.4";
       default:
         return "Unknown";
       }
@@ -632,6 +648,12 @@ namespace CEC
         return "2.1.0";
       case CEC_SERVER_VERSION_2_1_1:
         return "2.1.1";
+      case CEC_SERVER_VERSION_2_1_2:
+        return "2.1.2";
+      case CEC_SERVER_VERSION_2_1_3:
+        return "2.1.3";
+      case CEC_SERVER_VERSION_2_1_4:
+        return "2.1.4";
       default:
         return "Unknown";
       }
@@ -688,6 +710,16 @@ namespace CEC
         return "favourite menu";
       case CEC_USER_CONTROL_CODE_EXIT:
         return "exit";
+      case CEC_USER_CONTROL_CODE_TOP_MENU:
+        return "top menu";
+      case CEC_USER_CONTROL_CODE_DVD_MENU:
+        return "dvd menu";
+      case CEC_USER_CONTROL_CODE_NUMBER_ENTRY_MODE:
+        return "number entry mode";
+      case CEC_USER_CONTROL_CODE_NUMBER11:
+        return "11";
+      case CEC_USER_CONTROL_CODE_NUMBER12:
+        return "12";
       case CEC_USER_CONTROL_CODE_NUMBER0:
         return "0";
       case CEC_USER_CONTROL_CODE_NUMBER1:
@@ -776,6 +808,10 @@ namespace CEC
         return "timer programming";
       case CEC_USER_CONTROL_CODE_INITIAL_CONFIGURATION:
         return "initial configuration";
+      case CEC_USER_CONTROL_CODE_SELECT_BROADCAST_TYPE:
+        return "select broadcast type";
+      case CEC_USER_CONTROL_CODE_SELECT_SOUND_PRESENTATION:
+        return "select sound presentation";
       case CEC_USER_CONTROL_CODE_PLAY_FUNCTION:
         return "play (function)";
       case CEC_USER_CONTROL_CODE_PAUSE_PLAY_FUNCTION:
@@ -852,5 +888,16 @@ namespace CEC
       }
       return true;
     }
+
+    static CStdString ToString(const cec_command& command)
+    {
+      CStdString dataStr;
+      dataStr.Format(">> %1x%1x", command.initiator, command.destination);
+      if (command.opcode_set == 1)
+        dataStr.AppendFormat(":%02x", command.opcode);
+      for (uint8_t iPtr = 0; iPtr < command.parameters.size; iPtr++)
+        dataStr.AppendFormat(":%02x", (unsigned int)command.parameters[iPtr]);
+      return dataStr;
+    }
   };
 }