cec: always persist a changed configuration when possible
[deb_libcec.git] / include / cectypes.h
index ca065c606051ade2507c39ab669db40004d4a308..d70fc81f7f50aa726eed8a916206564c47c067e2 100644 (file)
@@ -584,6 +584,15 @@ typedef enum cec_opcode
   CEC_OPCODE_SYSTEM_AUDIO_MODE_REQUEST     = 0x70,
   CEC_OPCODE_SYSTEM_AUDIO_MODE_STATUS      = 0x7E,
   CEC_OPCODE_SET_AUDIO_RATE                = 0x9A,
+
+  /* CEC 1.4 */
+  CEC_OPCODE_START_ARC                     = 0xC0,
+  CEC_OPCODE_REPORT_ARC_STARTED            = 0xC1,
+  CEC_OPCODE_REPORT_ARC_ENDED              = 0xC2,
+  CEC_OPCODE_REQUEST_ARC_START             = 0xC3,
+  CEC_OPCODE_REQUEST_ARC_END               = 0xC4,
+  CEC_OPCODE_END_ARC                       = 0xC5,
+  CEC_OPCODE_CDC                           = 0xF8,
   /* when this opcode is set, no opcode will be sent to the device. this is one of the reserved numbers */
   CEC_OPCODE_NONE                          = 0xFD
 } cec_opcode;
@@ -999,7 +1008,7 @@ typedef struct cec_logical_addresses
    */
   void Clear(void)
   {
-    primary = CECDEVICE_UNKNOWN;
+    primary = CECDEVICE_UNREGISTERED;
     for (unsigned int iPtr = 0; iPtr < 16; iPtr++)
       addresses[iPtr] = 0;
   }
@@ -1009,7 +1018,7 @@ typedef struct cec_logical_addresses
    */
   bool IsEmpty(void) const
   {
-    return primary == CECDEVICE_UNKNOWN;
+    return primary == CECDEVICE_UNREGISTERED;
   }
 
   /*!
@@ -1031,7 +1040,7 @@ typedef struct cec_logical_addresses
    */
   void Set(cec_logical_address address)
   {
-    if (primary == CECDEVICE_UNKNOWN)
+    if (primary == CECDEVICE_UNREGISTERED)
       primary = address;
 
     addresses[(int) address] = 1;
@@ -1041,10 +1050,10 @@ typedef struct cec_logical_addresses
    * @brief Mark a logical address as 'unset'
    * @param address The logical address to remove from this list.
    */
-  void Unset(cec_logical_address address)
+  void Unset(const cec_logical_address address)
   {
     if (primary == address)
-      primary = CECDEVICE_UNKNOWN;
+      primary = CECDEVICE_UNREGISTERED;
 
     addresses[(int) address] = 0;
   }
@@ -1086,7 +1095,8 @@ typedef enum libcec_alert
 
 typedef enum libcec_parameter_type
 {
-  CEC_PARAMETER_TYPE_STRING
+  CEC_PARAMETER_TYPE_STRING,
+  CEC_PARAMETER_TYPE_UNKOWN
 } libcec_parameter_type;
 
 struct libcec_parameter