don't crash LibCecSharp when receiving an alert with a NULL param (like the connectio...
[deb_libcec.git] / src / LibCecSharp / CecSharpTypes.h
index d0e0120f176b9ecdf881e64a4798602885bd2d3b..78d01a953bc7b26bfbafd0e901f7ef3d110074ab 100644 (file)
@@ -784,27 +784,31 @@ namespace CecSharp
   /// </summary>
   public enum class CecVendorId
   {
-    Toshiba   = 0x000039,
-    Samsung   = 0x0000F0,
-    Denon     = 0x0005CD,
-    Loewe     = 0x000982,
-    Onkyo     = 0x0009B0,
-    Medion    = 0x000CB8,
-    Akai      = 0x0020C7,
-    AOC       = 0x002467,
-    Panasonic = 0x008045,
-    Philips   = 0x00903E,
-    Daewoo    = 0x009053,
-    Yamaha    = 0x00A0DE,
-    Grundig   = 0x00D0D5,
-    Pioneer   = 0x00E036,
-    LG        = 0x00E091,
-    Sharp     = 0x08001F,
-    Sony      = 0x080046,
-    Broadcom  = 0x18C086,
-    Vizio     = 0x6B746D,
-    Benq      = 0x8065E9,
-    Unknown   = 0
+    Toshiba      = 0x000039,
+    Samsung      = 0x0000F0,
+    Denon        = 0x0005CD,
+    Marantz      = 0x000678,
+    Loewe        = 0x000982,
+    Onkyo        = 0x0009B0,
+    Medion       = 0x000CB8,
+    Toshiba2     = 0x000CE7,
+    PulseEight   = 0x001582,
+    Akai         = 0x0020C7,
+    AOC          = 0x002467,
+    Panasonic    = 0x008045,
+    Philips      = 0x00903E,
+    Daewoo       = 0x009053,
+    Yamaha       = 0x00A0DE,
+    Grundig      = 0x00D0D5,
+    Pioneer      = 0x00E036,
+    LG           = 0x00E091,
+    Sharp        = 0x08001F,
+    Sony         = 0x080046,
+    Broadcom     = 0x18C086,
+    Vizio        = 0x6B746D,
+    Benq         = 0x8065E9,
+    HarmanKardon = 0x9C645E,
+    Unknown      = 0
   };
 
   /// <summary>
@@ -1215,7 +1219,19 @@ namespace CecSharp
     /// <summary>
     /// v2.1.1
     /// </summary>
-    Version2_1_1   = 0x2101
+    Version2_1_1   = 0x2101,
+    /// <summary>
+    /// v2.1.2
+    /// </summary>
+    Version2_1_2   = 0x2102,
+    /// <summary>
+    /// v2.1.3
+    /// </summary>
+    Version2_1_3   = 0x2103,
+    /// <summary>
+    /// The current version
+    /// </summary>
+    CurrentVersion = 0x2103
   };
 
   /// <summary>
@@ -1322,7 +1338,19 @@ namespace CecSharp
     /// <summary>
     /// v2.1.1
     /// </summary>
-    Version2_1_1   = 0x2101
+    Version2_1_1   = 0x2101,
+    /// <summary>
+    /// v2.1.2
+    /// </summary>
+    Version2_1_2   = 0x2102,
+    /// <summary>
+    /// v2.1.3
+    /// </summary>
+    Version2_1_3   = 0x2103,
+    /// <summary>
+    /// The current version
+    /// </summary>
+    CurrentVersion = 0x2103
   };
 
   /// <summary>
@@ -1713,8 +1741,8 @@ namespace CecSharp
       PhysicalAddress     = CEC_DEFAULT_PHYSICAL_ADDRESS;
       BaseDevice          = (CecLogicalAddress)CEC_DEFAULT_BASE_DEVICE;
       HDMIPort            = CEC_DEFAULT_HDMI_PORT;
-      ClientVersion       = CecClientVersion::Version2_1_1;
-      ServerVersion       = CecServerVersion::Version2_1_1;
+      ClientVersion       = CecClientVersion::CurrentVersion;
+      ServerVersion       = CecServerVersion::CurrentVersion;
       TvVendor            = CecVendorId::Unknown;
 
       GetSettingsFromROM  = false;
@@ -2377,7 +2405,7 @@ namespace CecSharp
         CecParameterType newType = (CecParameterType)data.paramType;
         if (newType == CecParameterType::ParameterTypeString)
         {
-          System::String ^ newData = gcnew System::String((const char *)data.paramData, 0, 128);
+          System::String ^ newData = gcnew System::String(data.paramData ? (const char *)data.paramData : "", 0, 128);
           CecParameter ^ newParam = gcnew CecParameter(newType, newData);
           iReturn = m_callbacks->ReceiveAlert((CecAlert)alert, newParam);
         }