X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=include%2Fcec.h;h=70c17ce5693411d1092bd964521f628836eae89c;hb=95a73fa78b4524636db470491c1e3434b81df4c0;hp=84cd7e6ee92c7d35eb0826f4c826a8493cecf0a6;hpb=18203d17e6894d33725dac7553d981aee735e6be;p=deb_libcec.git diff --git a/include/cec.h b/include/cec.h index 84cd7e6..70c17ce 100644 --- a/include/cec.h +++ b/include/cec.h @@ -163,12 +163,35 @@ namespace CEC */ 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. @@ -220,6 +243,70 @@ 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; }; }; @@ -232,6 +319,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.