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; }
}
}