cec: added VolumeUp()/cec_volume_up(), VolumeDown()/cec_volume_down(), MuteAudio...
[deb_libcec.git] / include / cec.h
index 6a8996d4ceb06ee060aebeb424aa80781680335f..7ac25fdfaf9b68b47839235e4fcf225651b21c80 100644 (file)
@@ -166,16 +166,17 @@ namespace CEC
     /*!
      * @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) = 0;
+    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) = 0;
+    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.
@@ -183,6 +184,14 @@ namespace CEC
      */
     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.
@@ -234,6 +243,50 @@ 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 iPort The new port number.
+     * @return True when changed, false otherwise.
+     */
+    virtual bool SetHDMIPort(uint8_t iPort) = 0;
+
+    /*!
+     * @brief Sends a volume up keypress to an audiosystem if it's present.
+     * @return The new audio status.
+     */
+    virtual uint8_t VolumeUp(void) = 0;
+
+    /*!
+     * @brief Sends a volume down keypress to an audiosystem if it's present.
+     * @return The new audio status.
+     */
+    virtual uint8_t VolumeDown(void) = 0;
+
+    /*!
+     * @brief Sends a mute keypress to an audiosystem if it's present.
+     * @return The new audio status.
+     */
+    virtual uint8_t MuteAudio(void) = 0;
   };
 };