added a callback for clients that is called when a source is (de)activated, so the...
[deb_libcec.git] / include / cectypes.h
index cc0b57ee449877333c85e2b073e217c6c0808a0a..df59193f594aeb3de04777afd6705132d5e7c876 100644 (file)
@@ -110,6 +110,8 @@ namespace CEC {
 #define CEC_SERIAL_DEFAULT_BAUDRATE     38400
 #define CEC_CLEAR_INPUT_DEFAULT_WAIT    1000
 
+#define CEC_ACTIVE_SOURCE_SWITCH_RETRY_TIME_MS 5000
+
 #define CEC_MIN_LIB_VERSION          1
 #define CEC_LIB_VERSION_MAJOR        1
 #define CEC_LIB_VERSION_MAJOR_STR    "1"
@@ -1122,6 +1124,7 @@ typedef int (CEC_CDECL* CBCecCommandType)(void *param, const cec_command &);
 typedef int (CEC_CDECL* CBCecConfigurationChangedType)(void *param, const libcec_configuration &);
 typedef int (CEC_CDECL* CBCecAlertType)(void *param, const libcec_alert, const libcec_parameter &);
 typedef int (CEC_CDECL* CBCecMenuStateChangedType)(void *param, const cec_menu_state);
+typedef void (CEC_CDECL* CBCecSourceActivatedType)(void *param, const cec_logical_address, const uint8_t);
 
 typedef struct ICECCallbacks
 {
@@ -1172,6 +1175,13 @@ typedef struct ICECCallbacks
    */
   CBCecMenuStateChangedType CBCecMenuStateChanged;
 
+  /*!
+   * @brief Called when a source that's handled by this client is activated.
+   * @param logicalAddress The address that was just activated.
+   * @param bActivated 1 when activated, 0 when deactivated.
+   */
+  CBCecSourceActivatedType CBCecSourceActivated;
+
 #ifdef __cplusplus
    ICECCallbacks(void) { Clear(); }
   ~ICECCallbacks(void) { Clear(); };
@@ -1184,6 +1194,7 @@ typedef struct ICECCallbacks
     CBCecConfigurationChanged = NULL;
     CBCecAlert                = NULL;
     CBCecMenuStateChanged     = NULL;
+    CBCecSourceActivated      = NULL;
   }
 #endif
 } ICECCallbacks;
@@ -1199,7 +1210,8 @@ typedef enum cec_client_version
   CEC_CLIENT_VERSION_1_6_1   = 0x1601,
   CEC_CLIENT_VERSION_1_6_2   = 0x1602,
   CEC_CLIENT_VERSION_1_6_3   = 0x1603,
-  CEC_CLIENT_VERSION_1_7_0   = 0x1700
+  CEC_CLIENT_VERSION_1_7_0   = 0x1700,
+  CEC_CLIENT_VERSION_1_7_1   = 0x1701
 } cec_client_version;
 
 typedef enum cec_server_version
@@ -1213,7 +1225,8 @@ typedef enum cec_server_version
   CEC_SERVER_VERSION_1_6_1   = 0x1601,
   CEC_SERVER_VERSION_1_6_2   = 0x1602,
   CEC_SERVER_VERSION_1_6_3   = 0x1603,
-  CEC_SERVER_VERSION_1_7_0   = 0x1700
+  CEC_SERVER_VERSION_1_7_0   = 0x1700,
+  CEC_SERVER_VERSION_1_7_1   = 0x1701
 } cec_server_version;
 
 typedef struct libcec_configuration