using System; using System.Collections.Generic; using System.Linq; using System.Text; using Crestron.SimplSharp; using Crestron.SimplSharpPro; using Crestron.SimplSharpPro.DM; using PepperDash.Core; namespace PepperDash.Essentials.Core { //******************************************************************************************* // Interfaces /// /// Defines a class that has a collection of RoutingInputPorts /// public interface IRoutingInputs : IKeyed { RoutingPortCollection InputPorts { get; } } /// /// Defines a class that has a collection of RoutingOutputPorts /// public interface IRoutingOutputs : IKeyed { RoutingPortCollection OutputPorts { get; } } /// /// For fixed-source endpoint devices /// public interface IRoutingSinkNoSwitching : IRoutingInputs { } public interface IRoutingSinkWithSwitching : IRoutingSinkNoSwitching { //void ClearRoute(); void ExecuteSwitch(object inputSelector); } /// /// For devices like RMCs, baluns, other devices with no switching. /// public interface IRoutingInputsOutputs : IRoutingInputs, IRoutingOutputs { } public interface IRouting : IRoutingInputsOutputs { //void ClearRoute(object outputSelector); void ExecuteSwitch(object inputSelector, object outputSelector, eRoutingSignalType signalType); } public interface IRoutingSource : IRoutingOutputs { } }