cec: added CanPersistConfiguration()/cec_can_persist_configuration() and PersistConfi...
[deb_libcec.git] / include / cec.h
index 5916ffdeee18ccbed5d5accf82fe92b1ee260bf7..82c0a603fd7455417aa03960705bd4f056a1bc08 100644 (file)
@@ -34,7 +34,7 @@
 #ifndef CECEXPORTS_H_
 #define CECEXPORTS_H_
 
-#include <cectypes.h>
+#include "cectypes.h"
 
 namespace CEC
 {
@@ -369,6 +369,25 @@ namespace CEC
      */
     virtual cec_logical_addresses GetLogicalAddresses(void) = 0;
 
+    /*!
+     * @brief Get libCEC's current configuration.
+     * @param configuration The configuration.
+     * @return True when the configuration was updated, false otherwise.
+     */
+    virtual bool GetCurrentConfiguration(libcec_configuration *configuration) = 0;
+
+    /*!
+     * @return True when this device can persist the user configuration, false otherwise.
+     */
+    virtual bool CanPersistConfiguration(void) = 0;
+
+    /*!
+     * @brief Persist the given configuration in adapter (if supported)
+     * @brief The configuration to store.
+     * @return True when the configuration was persisted, false otherwise.
+     */
+    virtual bool PersistConfiguration(libcec_configuration *configuration) = 0;
+
     virtual const char *ToString(const cec_menu_state state) = 0;
     virtual const char *ToString(const cec_version version) = 0;
     virtual const char *ToString(const cec_power_status status) = 0;
@@ -379,6 +398,7 @@ namespace CEC
     virtual const char *ToString(const cec_system_audio_status mode) = 0;
     virtual const char *ToString(const cec_audio_status status) = 0;
     virtual const char *ToString(const cec_vendor_id vendor) = 0;
+    virtual const char *ToString(const cec_client_version version) = 0;
   };
 };
 
@@ -386,19 +406,17 @@ namespace CEC
  * @brief Load the CEC adapter library.
  * @param strDeviceName How to present this device to other devices.
  * @param deviceTypes The device types to use on the CEC bus.
+ * @param iPhysicalAddress The physical address to assume on the bus. If set to 0, libCEC will try to autodetect the address, with the data provided via SetHDMIPort()
  * @return An instance of ICECAdapter or NULL on error.
  */
-extern "C" DECLSPEC void * CECInit(const char *strDeviceName, CEC::cec_device_type_list devicesTypes);
+extern "C" DECLSPEC void * CECInit(const char *strDeviceName, CEC::cec_device_type_list deviceTypes, uint16_t iPhysicalAddress = 0);
 
 /*!
- * @deprecated Please use CECInit() instead
  * @brief Load the CEC adapter library.
- * @param strDeviceName How to present this device to other devices.
- * @param iLogicalAddress The logical of this device. PLAYBACKDEVICE1 by default.
- * @param iPhysicalAddress The physical address of this device. 0x1000 by default.
+ * @param configuration The configuration to pass to libCEC
  * @return An instance of ICECAdapter or NULL on error.
  */
-extern "C" DECLSPEC void * CECCreate(const char *strDeviceName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS);
+extern "C" DECLSPEC void * CECInitialise(const CEC::libcec_configuration *configuration);
 
 /*!
  * @brief Unload the CEC adapter library.