cec: added logical address autodetection and let libcec handle multiple types simulta...
[deb_libcec.git] / include / cec.h
index c23c35a125ae83b6eeed287af8bd8a94bf4a050e..582bf24be77a6b4537965e637fc39ef16eddbb09 100644 (file)
@@ -71,14 +71,19 @@ namespace CEC
     //@}
 
     /*!
-     * @see cec_get_min_version
+     * @see cec_get_min_lib_version
      */
-    virtual int8_t GetMinVersion(void) = 0;
+    virtual int8_t GetMinLibVersion(void) const = 0;
 
     /*!
-     * @see cec_get_lib_version
+     * @see cec_get_lib_version_major
      */
-    virtual int8_t GetLibVersion(void) = 0;
+    virtual int8_t GetLibVersionMajor(void) const = 0;
+
+    /*!
+     * @see cec_get_lib_version_minor
+     */
+    virtual int8_t GetLibVersionMinor(void) const = 0;
 
     /*!
      * @see cec_get_next_log_message
@@ -98,7 +103,7 @@ namespace CEC
     /*!
      * @see cec_transmit
      */
-    virtual bool Transmit(const cec_command &data, bool bWaitForAck = true) = 0;
+    virtual bool Transmit(const cec_command &data) = 0;
 
     /*!
      * @see cec_set_logical_address
@@ -134,9 +139,40 @@ namespace CEC
      * @see cec_set_osd_string
      */
     virtual bool SetOSDString(cec_logical_address iLogicalAddress, cec_display_control duration, const char *strMessage) = 0;
+
+    /*!
+     * @see cec_switch_monitoring
+     */
+    virtual bool SwitchMonitoring(bool bEnable) = 0;
+
+    /*!
+     * @see cec_get_device_cec_version
+     */
+    virtual cec_version GetDeviceCecVersion(cec_logical_address iAddress) = 0;
+
+    /*!
+     * @see cec_get_device_menu_language
+     */
+    virtual bool GetDeviceMenuLanguage(cec_logical_address iAddress, cec_menu_language *language) = 0;
+
+    /*!
+     * @see cec_get_device_vendor_id
+     */
+    virtual uint64_t GetDeviceVendorId(cec_logical_address iAddress) = 0;
+
+    /*!
+     * @see cec_get_device_power_status
+     */
+    virtual cec_power_status GetDevicePowerStatus(cec_logical_address iAddress) = 0;
+
+    /*!
+     * @see cec_poll_device
+     */
+    virtual bool PollDevice(cec_logical_address iAddress) = 0;
   };
 };
 
+extern "C" DECLSPEC void * CECInit(const char *strDeviceName, CEC::cec_device_type_list devicesTypes);
 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 CECDestroy(CEC::ICECAdapter *instance);