using System; using PepperDash.Essentials.Devices.Common.VideoCodec.Cisco; namespace PepperDash.Essentials.Devices.Common.Codec { /// /// Defines the contract for IHasExternalSourceSwitching /// public interface IHasExternalSourceSwitching { /// /// Gets a value indicating whether the external source list is enabled /// bool ExternalSourceListEnabled { get; } /// /// Gets the external source input port identifier /// string ExternalSourceInputPort { get; } /// /// Adds an external source to the available sources /// /// The connector identifier /// The unique key for the source /// The display name for the source /// The type of external source void AddExternalSource(string connectorId, string key, string name, eExternalSourceType type); /// /// Sets the state of the specified external source /// /// The unique key of the external source /// The mode to set for the source void SetExternalSourceState(string key, eExternalSourceMode mode); /// /// Clears all external sources from the list /// void ClearExternalSources(); /// /// Sets the selected source by its key /// /// The unique key of the source to select void SetSelectedSource(string key); /// /// Sets the action to run when routing between sources /// Action RunRouteAction { set; } } }