mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 13:15:03 +00:00
feature(wip): adds inputPriorities configuration property
This commit is contained in:
@@ -10,7 +10,6 @@ using PepperDash.Essentials.Core;
|
|||||||
using PepperDash.Essentials.Core.Bridges;
|
using PepperDash.Essentials.Core.Bridges;
|
||||||
using PepperDash.Essentials.Core.Config;
|
using PepperDash.Essentials.Core.Config;
|
||||||
using PepperDash_Essentials_Core.Bridges;
|
using PepperDash_Essentials_Core.Bridges;
|
||||||
using PepperDash_Essentials_DM;
|
|
||||||
using PepperDash_Essentials_DM.Config;
|
using PepperDash_Essentials_DM.Config;
|
||||||
|
|
||||||
namespace PepperDash_Essentials_DM.Chassis
|
namespace PepperDash_Essentials_DM.Chassis
|
||||||
@@ -19,6 +18,7 @@ namespace PepperDash_Essentials_DM.Chassis
|
|||||||
public class HdPsXxxController : CrestronGenericBridgeableBaseDevice, IRoutingNumericWithFeedback
|
public class HdPsXxxController : CrestronGenericBridgeableBaseDevice, IRoutingNumericWithFeedback
|
||||||
{
|
{
|
||||||
private readonly HdPsXxx _chassis;
|
private readonly HdPsXxx _chassis;
|
||||||
|
private byte[] _inputPriorityParams;
|
||||||
|
|
||||||
public RoutingPortCollection<RoutingInputPort> InputPorts { get; private set; }
|
public RoutingPortCollection<RoutingInputPort> InputPorts { get; private set; }
|
||||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
||||||
@@ -76,6 +76,12 @@ namespace PepperDash_Essentials_DM.Chassis
|
|||||||
if (_chassis.NumberOfOutputs == 1)
|
if (_chassis.NumberOfOutputs == 1)
|
||||||
AutoRouteFeedback = new BoolFeedback(() => _chassis.PriorityRouteOnFeedback.BoolValue);
|
AutoRouteFeedback = new BoolFeedback(() => _chassis.PriorityRouteOnFeedback.BoolValue);
|
||||||
|
|
||||||
|
if (props.InputPriorities != null)
|
||||||
|
{
|
||||||
|
_inputPriorityParams = new byte[_chassis.NumberOfInputs];
|
||||||
|
_inputPriorityParams = GetInputPriorities(props);
|
||||||
|
}
|
||||||
|
|
||||||
InputNames = props.Inputs;
|
InputNames = props.Inputs;
|
||||||
SetupInputs(InputNames);
|
SetupInputs(InputNames);
|
||||||
|
|
||||||
@@ -83,6 +89,12 @@ namespace PepperDash_Essentials_DM.Chassis
|
|||||||
SetupOutputs(OutputNames);
|
SetupOutputs(OutputNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get input priorities
|
||||||
|
private byte[] GetInputPriorities(HdPsXxxPropertiesConfig props)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
// input setup
|
// input setup
|
||||||
private void SetupInputs(Dictionary<uint, string> dict)
|
private void SetupInputs(Dictionary<uint, string> dict)
|
||||||
{
|
{
|
||||||
@@ -175,13 +187,13 @@ namespace PepperDash_Essentials_DM.Chassis
|
|||||||
OutputRouteNameFeedback.Add(new StringFeedback(name, () => output.VideoOutFeedback.NameFeedback.StringValue));
|
OutputRouteNameFeedback.Add(new StringFeedback(name, () => output.VideoOutFeedback.NameFeedback.StringValue));
|
||||||
|
|
||||||
VideoOutputRouteFeedbacks.Add(new IntFeedback(name,
|
VideoOutputRouteFeedbacks.Add(new IntFeedback(name,
|
||||||
() => output.VideoOutFeedback == null ? 0 : (int) output.VideoOutFeedback.Number));
|
() => output.VideoOutFeedback == null ? 0 : (int)output.VideoOutFeedback.Number));
|
||||||
|
|
||||||
// TODO [ ] Investigate setting input priorities per output
|
// TODO [ ] Investigate setting input priorities per output
|
||||||
// {{in1-priority-level}, {in2-priority-level}, .... {in6-priority-level}}
|
// {{in1-priority-level}, {in2-priority-level}, .... {in6-priority-level}}
|
||||||
// default priority level input 1-4 ascending
|
// default priority level input 1-4 ascending
|
||||||
//var priorities = new byte[] {1,2,3,4};
|
if (_inputPriorityParams != null && _inputPriorityParams.Count() > 0)
|
||||||
//output.OutputPort.InputPriorities(priorities);
|
output.OutputPort.InputPriorities(_inputPriorityParams);
|
||||||
|
|
||||||
if (port.Port == null) continue;
|
if (port.Port == null) continue;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.DM.Config;
|
|
||||||
|
|
||||||
namespace PepperDash_Essentials_DM.Config
|
namespace PepperDash_Essentials_DM.Config
|
||||||
{
|
{
|
||||||
@@ -11,18 +10,17 @@ namespace PepperDash_Essentials_DM.Config
|
|||||||
public ControlPropertiesConfig Control { get; set; }
|
public ControlPropertiesConfig Control { get; set; }
|
||||||
|
|
||||||
[JsonProperty("inputs")]
|
[JsonProperty("inputs")]
|
||||||
//public Dictionary<uint, InputPropertiesConfig> Inputs { get; set; }
|
|
||||||
public Dictionary<uint, string> Inputs { get; set; }
|
public Dictionary<uint, string> Inputs { get; set; }
|
||||||
|
|
||||||
[JsonProperty("outputs")]
|
[JsonProperty("outputs")]
|
||||||
//public Dictionary<uint, InputPropertiesConfig> Outputs { get; set; }
|
|
||||||
public Dictionary<uint, string> Outputs { get; set; }
|
public Dictionary<uint, string> Outputs { get; set; }
|
||||||
|
|
||||||
|
// "inputPriorities": "1,4,3,2"
|
||||||
|
[JsonProperty("inputPriorities")]
|
||||||
|
public string InputPriorities { get; set; }
|
||||||
|
|
||||||
public HdPsXxxPropertiesConfig()
|
public HdPsXxxPropertiesConfig()
|
||||||
{
|
{
|
||||||
//Inputs = new Dictionary<uint, InputPropertiesConfig>();
|
|
||||||
//Outputs = new Dictionary<uint, InputPropertiesConfig>();
|
|
||||||
|
|
||||||
Inputs = new Dictionary<uint, string>();
|
Inputs = new Dictionary<uint, string>();
|
||||||
Outputs = new Dictionary<uint, string>();
|
Outputs = new Dictionary<uint, string>();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user