*/
virtual bool SetPhysicalAddress(uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS) = 0;
+ /*!
+ * @brief Enable physical address detection (if the connected adapter supports this).
+ * @return True when physical address detection was enabled, false otherwise.
+ */
+ virtual bool EnablePhysicalAddressDetection(void) = 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 Power on the connected CEC capable devices.
* @param address The logical address to power on.
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.
* @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 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;
+
};
};
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.