cec: display an alert message in case the connection couldn't be opened because of...
[deb_libcec.git] / include / cectypes.h
index 759eb4fa50c941b24f3eaf27c8d2ecfdd4e6d600..77b9927d3dca42823779cd844c95339cee2bfb29 100644 (file)
@@ -908,19 +908,6 @@ typedef struct cec_device_type_list
   cec_device_type types[5]; /**< the list of device types */
 
 #ifdef __cplusplus
-  cec_device_type_list operator+ (const cec_device_type_list &other)
-  {
-    cec_device_type_list retVal;
-    for (unsigned int iPtr = 0; iPtr < 5; iPtr++)
-    {
-      if (other.types[iPtr] != CEC_DEVICE_TYPE_RESERVED)
-        retVal.Add(other.types[iPtr]);
-      if (types[iPtr] != CEC_DEVICE_TYPE_RESERVED)
-        retVal.Add(types[iPtr]);
-    }
-    return retVal;
-  }
-
   /*!
    * @deprecated Use Clear() instead.
    * @brief Clear this list.
@@ -963,7 +950,7 @@ typedef struct cec_device_type_list
    * @param type The type to check.
    * @return True when set, false otherwise.
    */
-  bool IsSet(const cec_device_type type) const
+  bool IsSet(cec_device_type type)
   {
     bool bReturn(false);
     for (unsigned int iPtr = 0; !bReturn && iPtr < 5; iPtr++)
@@ -1016,9 +1003,6 @@ typedef struct cec_logical_addresses
   int                 addresses[16]; /**< the list of addresses */
 
 #ifdef __cplusplus
-  cec_logical_addresses(void)          { Clear(); }
-  virtual ~cec_logical_addresses(void) { Clear(); }
-
   /*!
    * @brief Clear this list.
    */
@@ -1079,7 +1063,7 @@ typedef struct cec_logical_addresses
    * @param address The address to check.
    * @return True when set, false otherwise.
    */
-  bool IsSet(const cec_logical_address address) const { return addresses[(int) address] == 1; }
+  bool IsSet(cec_logical_address address) const { return addresses[(int) address] == 1; }
 
   /*!
    * @brief Check whether an address is set in this list.
@@ -1100,34 +1084,15 @@ typedef struct cec_logical_addresses
   {
     return !(*this == other);
   }
-
-  cec_logical_addresses operator+ (const cec_logical_addresses &other)
-  {
-    cec_logical_addresses retVal;
-    for (unsigned int iPtr = 0; iPtr < 16; iPtr++)
-    {
-      if (other.IsSet((cec_logical_address)iPtr) || IsSet((cec_logical_address)iPtr))
-        retVal.Set((cec_logical_address)iPtr);
-    }
-    return retVal;
-  }
-
-  cec_logical_addresses &operator+= (const cec_logical_addresses &other)
-  {
-    for (unsigned int iPtr = 0; iPtr < 16; iPtr++)
-    {
-      if (other.IsSet((cec_logical_address)iPtr))
-        Set((cec_logical_address)iPtr);
-    }
-    return *this;
-  }
 #endif
 } cec_logical_addresses;
 
 typedef enum libcec_alert
 {
   CEC_ALERT_SERVICE_DEVICE,
-  CEC_ALERT_CONNECTION_LOST
+  CEC_ALERT_CONNECTION_LOST,
+  CEC_ALERT_PERMISSION_ERROR,
+  CEC_ALERT_PORT_BUSY
 } libcec_alert;
 
 typedef enum libcec_parameter_type
@@ -1140,22 +1105,6 @@ struct libcec_parameter
 {
   libcec_parameter_type paramType; /**< the type of this parameter */
   void*                 paramData; /**< the value of this parameter */
-
-#ifdef __cplusplus
-  libcec_parameter(void)
-  {
-    paramType = CEC_PARAMETER_TYPE_UNKOWN;
-    paramData = NULL;
-  }
-
-  libcec_parameter(const char *strMessage)
-  {
-    paramType = CEC_PARAMETER_TYPE_STRING;
-    paramData = (void*)strMessage;
-  }
-
-  virtual ~libcec_parameter(void) {}
-#endif
 };
 
 struct libcec_configuration;
@@ -1241,7 +1190,8 @@ typedef enum cec_client_version
   CEC_CLIENT_VERSION_1_5_3   = 0x1503,
   CEC_CLIENT_VERSION_1_6_0   = 0x1600,
   CEC_CLIENT_VERSION_1_6_1   = 0x1601,
-  CEC_CLIENT_VERSION_1_6_2   = 0x1602
+  CEC_CLIENT_VERSION_1_6_2   = 0x1602,
+  CEC_CLIENT_VERSION_1_6_3   = 0x1603
 } cec_client_version;
 
 typedef enum cec_server_version
@@ -1253,7 +1203,8 @@ typedef enum cec_server_version
   CEC_SERVER_VERSION_1_5_3   = 0x1503,
   CEC_SERVER_VERSION_1_6_0   = 0x1600,
   CEC_SERVER_VERSION_1_6_1   = 0x1601,
-  CEC_SERVER_VERSION_1_6_2   = 0x1602
+  CEC_SERVER_VERSION_1_6_2   = 0x1602,
+  CEC_SERVER_VERSION_1_6_3   = 0x1603
 } cec_server_version;
 
 typedef struct libcec_configuration
@@ -1288,6 +1239,7 @@ typedef struct libcec_configuration
   uint8_t               bShutdownOnStandby;   /*!< shutdown this PC when the TV is switched off. only used when bPowerOffOnStandby = 0. added in 1.6.0 */
   char                  strDeviceLanguage[3]; /*!< the menu language used by the client. 3 character ISO 639-2 country code. see http://http://www.loc.gov/standards/iso639-2/ added in 1.6.2 */
   uint32_t              iFirmwareBuildDate;   /*!< the build date of the firmware, in seconds since epoch. if not available, this value will be set to 0. added in 1.6.2 */
+  uint8_t               bMonitorOnly;         /*!< won't allocate a CCECClient when starting the connection when set (same as monitor mode). added in 1.6.3 */
 
 #ifdef __cplusplus
    libcec_configuration(void) { Clear(); }
@@ -1313,14 +1265,16 @@ typedef struct libcec_configuration
                  bPowerOffOnStandby   == other.bPowerOffOnStandby &&
                  bSendInactiveSource  == other.bSendInactiveSource &&
         /* libcec 1.5.3+ */
-        (other.serverVersion < CEC_SERVER_VERSION_1_5_3 || logicalAddresses == other.logicalAddresses) &&
+        (other.clientVersion < CEC_CLIENT_VERSION_1_5_3 || logicalAddresses == other.logicalAddresses) &&
         /* libcec 1.6.0+ */
-        (other.serverVersion < CEC_SERVER_VERSION_1_6_0 || iFirmwareVersion          == other.iFirmwareVersion) &&
-        (other.serverVersion < CEC_SERVER_VERSION_1_6_0 || bPowerOffDevicesOnStandby == other.bPowerOffDevicesOnStandby) &&
-        (other.serverVersion < CEC_SERVER_VERSION_1_6_0 || bShutdownOnStandby        == other.bShutdownOnStandby) &&
+        (other.clientVersion < CEC_CLIENT_VERSION_1_6_0 || iFirmwareVersion          == other.iFirmwareVersion) &&
+        (other.clientVersion < CEC_CLIENT_VERSION_1_6_0 || bPowerOffDevicesOnStandby == other.bPowerOffDevicesOnStandby) &&
+        (other.clientVersion < CEC_CLIENT_VERSION_1_6_0 || bShutdownOnStandby        == other.bShutdownOnStandby) &&
         /* libcec 1.6.2+ */
-        (other.serverVersion < CEC_SERVER_VERSION_1_6_2 || !strncmp(strDeviceLanguage, other.strDeviceLanguage, 3)) &&
-        (other.serverVersion < CEC_SERVER_VERSION_1_6_2 || iFirmwareBuildDate       == other.iFirmwareBuildDate));
+        (other.clientVersion < CEC_CLIENT_VERSION_1_6_2 || !strncmp(strDeviceLanguage, other.strDeviceLanguage, 3)) &&
+        (other.clientVersion < CEC_CLIENT_VERSION_1_6_2 || iFirmwareBuildDate        == other.iFirmwareBuildDate) &&
+        /* libcec 1.6.3+ */
+        (other.clientVersion < CEC_CLIENT_VERSION_1_6_3 || bMonitorOnly              == other.bMonitorOnly));
   }
 
   bool operator!=(const libcec_configuration &other) const
@@ -1351,6 +1305,7 @@ typedef struct libcec_configuration
     bPowerOffDevicesOnStandby =       CEC_DEFAULT_SETTING_POWER_OFF_DEVICES_STANDBY;
     memcpy(strDeviceLanguage,         CEC_DEFAULT_DEVICE_LANGUAGE, 3);
     iFirmwareBuildDate =              CEC_FW_BUILD_UNKNOWN;
+    bMonitorOnly =                    0;
 
     memset(strDeviceName, 0, 13);
     deviceTypes.clear();