cec: specify the device on which the HDMI port will be selected in SetHDMIPort()
[deb_libcec.git] / include / cec.h
index 5c8ce125e9cbe5012d7b26426530d9932d3d69fe..6fef4827e75a0ec419b9403bf300a45032cec3e3 100644 (file)
@@ -152,17 +152,46 @@ namespace CEC
     virtual bool StandbyDevices(cec_logical_address address = CECDEVICE_BROADCAST) = 0;
 
     /*!
-     * @brief Broadcast a message that notifies connected CEC capable devices that this device is the active source.
+     * @brief Change the active source.
+     * @param type The new active source. Leave empty to use the primary type
      * @return True when the command was sent succesfully, false otherwise.
      */
+    virtual bool SetActiveSource(cec_device_type type = CEC_DEVICE_TYPE_RESERVED) = 0;
+
+    /*!
+     * @deprecated Use SetActiveSource() instead
+     */
     virtual bool SetActiveView(void) = 0;
 
+    /*!
+     * @brief Change the deck control mode, if this adapter is registered as playback device.
+     * @param mode The new control mode.
+     * @param bSendUpdate True to send the status over the CEC line.
+     * @return True if set, false otherwise.
+     */
+    virtual bool SetDeckControlMode(cec_deck_control_mode mode, bool bSendUpdate = true) = 0;
+
+    /*!
+     * @brief Change the deck info, if this adapter is a playback device.
+     * @param info The new deck info.
+     * @return True if set, false otherwise.
+     */
+    virtual bool SetDeckInfo(cec_deck_info info, bool bSendUpdate = true) = 0;
+
     /*!
      * @brief Broadcast a message that notifies connected CEC capable devices that this device is no longer the active source.
      * @return True when the command was sent succesfully, false otherwise.
      */
     virtual bool SetInactiveView(void) = 0;
 
+    /*!
+     * @brief Change the menu state.
+     * @param state The new true.
+     * @param bSendUpdate True to send the status over the CEC line.
+     * @return True if set, false otherwise.
+     */
+    virtual bool SetMenuState(cec_menu_state state, bool bSendUpdate = true) = 0;
+
     /*!
      * @brief Display a message on the device with the given logical address.
      * @param iLogicalAddres The device to display the message on.
@@ -214,6 +243,90 @@ namespace CEC
      * @return True if the POLL was acked, false otherwise.
      */
     virtual bool PollDevice(cec_logical_address iAddress) = 0;
+
+    /*!
+     * @return The devices that are active on the bus and not handled by libcec.
+     */
+    virtual cec_logical_addresses GetActiveDevices(void) = 0;
+
+    /*!
+     * @brief Check whether a device is active on the bus.
+     * @param iAddress The address to check.
+     * @return True when active, false otherwise.
+     */
+    virtual bool IsActiveDevice(cec_logical_address iAddress) = 0;
+
+    /*!
+     * @brief Check whether a device of the given type is active on the bus.
+     * @param type The type to check.
+     * @return True when active, false otherwise.
+     */
+    virtual bool IsActiveDeviceType(cec_device_type type) = 0;
+
+    /*!
+     * @brief Changes the active HDMI port.
+     * @param iBaseDevice The device to which this libcec is connected.
+     * @param iPort The new port number.
+     * @return True when changed, false otherwise.
+     */
+    virtual bool SetHDMIPort(cec_logical_address iBaseDevice, uint8_t iPort) = 0;
+
+    /*!
+     * @brief Sends a volume up keypress to an audiosystem if it's present.
+     * @param bWait Wait for the response of the audiosystem when true.
+     * @return The new audio status.
+     */
+    virtual uint8_t VolumeUp(bool bWait = true) = 0;
+
+    /*!
+     * @brief Sends a volume down keypress to an audiosystem if it's present.
+     * @param bWait Wait for the response of the audiosystem when true.
+     * @return The new audio status.
+     */
+    virtual uint8_t VolumeDown(bool bWait = true) = 0;
+
+    /*!
+     * @brief Sends a mute keypress to an audiosystem if it's present.
+     * @param bWait Wait for the response of the audiosystem when true.
+     * @return The new audio status.
+     */
+    virtual uint8_t MuteAudio(bool bWait = true) = 0;
+
+    /*!
+     * @brief Send a keypress to a device on the CEC bus.
+     * @param iDestination The address to send the message to.
+     * @param key The key to send.
+     * @param bWait True to wait for a response, false otherwise.
+     * @return True when the keypress was acked, false otherwise.
+     */
+    virtual bool SendKeypress(cec_logical_address iDestination, cec_user_control_code key, bool bWait = false) = 0;
+
+    /*!
+     * @brief Send a key release to a device on the CEC bus.
+     * @param iDestination The address to send the message to.
+     * @param bWait True to wait for a response, false otherwise.
+     * @return True when the keypress was acked, false otherwise.
+     */
+    virtual bool SendKeyRelease(cec_logical_address iDestination, bool bWait = false) = 0;
+
+    /*!
+     * @brief Get the OSD name of a device on the CEC bus.
+     * @param iAddress The device to get the OSD name for.
+     * @return The OSD name.
+     */
+    virtual cec_osd_name GetOSDName(cec_logical_address iAddress) = 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;
+    virtual const char *ToString(const cec_logical_address address) = 0;
+    virtual const char *ToString(const cec_deck_control_mode mode) = 0;
+    virtual const char *ToString(const cec_deck_info status) = 0;
+    virtual const char *ToString(const cec_opcode opcode) = 0;
+    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;
+
   };
 };
 
@@ -226,6 +339,7 @@ namespace CEC
 extern "C" DECLSPEC void * CECInit(const char *strDeviceName, CEC::cec_device_type_list devicesTypes);
 
 /*!
+ * @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.