+
+ /*!
+ * @brief Persist the given configuration in adapter (if supported)
+ * @brief The configuration to store.
+ * @return True when the configuration was persisted, false otherwise.
+ */
+ virtual bool PersistConfiguration(const libcec_configuration &configuration) = 0;
+
+ /*!
+ * @brief Get the persisted configuration from the adapter (if supported)
+ * @param configuration The updated configuration.
+ * @return True when the configuration was updated, false otherwise.
+ */
+ virtual bool GetConfiguration(libcec_configuration &configuration) = 0;
+
+ /*!
+ * @return The name of the port
+ */
+ virtual std::string GetPortName(void) = 0;
+
+ /*!
+ * @return The physical address, if the adapter supports this. 0 otherwise.
+ */
+ virtual uint16_t GetPhysicalAddress(void) = 0;
+
+ /*!
+ * @return The vendor id for this device
+ */
+ virtual cec_vendor_id GetVendorId(void) = 0;
+
+ /*!
+ * @brief Checks whether a logical address is supported by the adapter.
+ * @param address The address to check.
+ * @return True when supported, false otherwise.
+ */
+ virtual bool SupportsSourceLogicalAddress(const cec_logical_address address) = 0;
+
+ /*!
+ * @return The type of adapter that this instance is connected to.
+ */
+ virtual cec_adapter_type GetAdapterType(void) = 0;
+
+ /*!
+ * @return The (virtual) USB vendor id
+ */
+ virtual uint16_t GetAdapterVendorId(void) const = 0;
+
+ /*!
+ * @return The (virtual) USB product id
+ */
+ virtual uint16_t GetAdapterProductId(void) const = 0;
+
+ /*!
+ * @brief Marks the adapter as active or inactive source
+ * @param bSetTo True to mark as active source, false to mark as inactive source
+ * @param bClientUnregistered True when the client was unregistered, false when the device was explicitly marked as (in)active source
+ */
+ virtual void SetActiveSource(bool bSetTo, bool bClientUnregistered) = 0;
+
+ IAdapterCommunicationCallback *m_callback;