X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=include%2Fcec.h;h=9aa944b04fd45e53001a0bc69b35b0229d5f2415;hb=ab27363d2e09c62c70bfc23c253745f7e12725be;hp=6a8996d4ceb06ee060aebeb424aa80781680335f;hpb=a9232a79cfb71be51caea8aae6c8ea63ae3884ad;p=deb_libcec.git diff --git a/include/cec.h b/include/cec.h index 6a8996d..9aa944b 100644 --- a/include/cec.h +++ b/include/cec.h @@ -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,77 @@ 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. + * @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; }; };