diff --git a/src/PepperDash.Essentials.Core/Routing/TieLine.cs b/src/PepperDash.Essentials.Core/Routing/TieLine.cs index 0b271272..51968152 100644 --- a/src/PepperDash.Essentials.Core/Routing/TieLine.cs +++ b/src/PepperDash.Essentials.Core/Routing/TieLine.cs @@ -57,6 +57,16 @@ namespace PepperDash.Essentials.Core DestinationPort = destinationPort; } + /// + /// Creates a tie line with an overriding Type. See help for OverrideType property for info + /// + /// The signal type to limit the link to. Overrides DestinationPort.Type + public TieLine(RoutingOutputPort sourcePort, RoutingInputPort destinationPort, eRoutingSignalType? overrideType) : + this(sourcePort, destinationPort) + { + OverrideType = overrideType; + } + /// /// Creates a tie line with an overriding Type. See help for OverrideType property for info /// diff --git a/src/PepperDash.Essentials.Core/Routing/TieLineConfig.cs b/src/PepperDash.Essentials.Core/Routing/TieLineConfig.cs index 922cc61d..e7ffb292 100644 --- a/src/PepperDash.Essentials.Core/Routing/TieLineConfig.cs +++ b/src/PepperDash.Essentials.Core/Routing/TieLineConfig.cs @@ -7,6 +7,7 @@ using Crestron.SimplSharp.CrestronIO; using Crestron.SimplSharpPro; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using PepperDash.Core; using PepperDash.Essentials.Core; @@ -23,6 +24,10 @@ namespace PepperDash.Essentials.Core.Config public string DestinationCard { get; set; } public string DestinationPort { get; set; } + [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] + [JsonConverter(typeof(StringEnumConverter))] + public eRoutingSignalType? OverrideType { get; set; } + /// /// Returns the appropriate tie line for either a card-based device or /// regular device with ports on-device. @@ -65,7 +70,7 @@ namespace PepperDash.Essentials.Core.Config return null; } - return new TieLine(sourceOutputPort, destinationInputPort); + return new TieLine(sourceOutputPort, destinationInputPort, OverrideType); } void LogError(string msg)