feat(Essentials_DM): Update all card creation methods to pass appropriate input

This commit is contained in:
Andrew Welker
2021-09-08 15:25:43 -06:00
parent d00a31e3a6
commit a28a078c4f

View File

@@ -497,166 +497,189 @@ namespace PepperDash.Essentials.DM
{ {
case "dmchd": case "dmchd":
{ {
var inputCard = new DmcHd(number, this.Chassis); var inputCard = new DmcHd(number, Chassis);
var cecPort = inputCard.HdmiInput as ICec; AddHdmiInCardPorts(number, inputCard.HdmiInput, inputCard.HdmiInput);
AddHdmiInCardPorts(number, cecPort);
} }
break; break;
case "dmchddsp": case "dmchddsp":
{ {
var inputCard = new DmcHdDsp(number, this.Chassis); var inputCard = new DmcHdDsp(number, Chassis);
var cecPort = inputCard.HdmiInput as ICec; AddHdmiInCardPorts(number, inputCard.HdmiInput, inputCard.HdmiInput);
AddHdmiInCardPorts(number, cecPort);
} }
break; break;
case "dmc4khd": case "dmc4khd":
{ {
var inputCard = new Dmc4kHd(number, this.Chassis); var inputCard = new Dmc4kHd(number, Chassis);
var cecPort = inputCard.HdmiInput as ICec; AddHdmiInCardPorts(number, inputCard.HdmiInput, inputCard.HdmiInput);
AddHdmiInCardPorts(number, cecPort);
} }
break; break;
case "dmc4khddsp": case "dmc4khddsp":
{ {
var inputCard = new Dmc4kHdDsp(number, this.Chassis); var inputCard = new Dmc4kHdDsp(number, Chassis);
var cecPort = inputCard.HdmiInput as ICec; AddHdmiInCardPorts(number, inputCard.HdmiInput, inputCard.HdmiInput);
AddHdmiInCardPorts(number, cecPort);
} }
break; break;
case "dmc4kzhd": case "dmc4kzhd":
{ {
var inputCard = new Dmc4kzHd(number, this.Chassis); var inputCard = new Dmc4kzHd(number, Chassis);
var cecPort = inputCard.HdmiInput as ICec; AddHdmiInCardPorts(number, inputCard.HdmiInput, inputCard.HdmiInput);
AddHdmiInCardPorts(number, cecPort);
}
break; break;
}
case "dmc4kzhddsp": case "dmc4kzhddsp":
{ {
var inputCard = new Dmc4kzHdDsp(number, this.Chassis); var inputCard = new Dmc4kzHdDsp(number, Chassis);
var cecPort = inputCard.HdmiInput as ICec; AddHdmiInCardPorts(number, inputCard.HdmiInput, inputCard.HdmiInput);
AddHdmiInCardPorts(number, cecPort);
}
break; break;
}
case "dmcc": case "dmcc":
{ {
var inputCard = new DmcC(number, this.Chassis); var inputCard = new DmcC(number, Chassis);
var cecPort = inputCard.DmInput as ICec; //DmInput doesn't implement ICec...cast was resulting in null anyway
AddDmInCardPorts(number, cecPort); AddDmInCardPorts(number, null, inputCard.DmInput);
} }
break; break;
case "dmccdsp": case "dmccdsp":
{ {
var inputCard = new DmcCDsp(number, this.Chassis); var inputCard = new DmcCDsp(number, Chassis);
var cecPort = inputCard.DmInput as ICec; //DmInput doesn't implement ICec...cast was resulting in null anyway
AddDmInCardPorts(number, cecPort); AddDmInCardPorts(number, null, inputCard.DmInput);
}
break; break;
}
case "dmc4kc": case "dmc4kc":
{ {
var inputCard = new Dmc4kC(number, this.Chassis); var inputCard = new Dmc4kC(number, Chassis);
var cecPort = inputCard.DmInput as ICec; AddDmInCardPorts(number, inputCard.DmInput,inputCard.DmInput);
AddDmInCardPorts(number, cecPort);
}
break; break;
}
case "dmc4kcdsp": case "dmc4kcdsp":
{ {
var inputCard = new Dmc4kCDsp(number, this.Chassis); var inputCard = new Dmc4kCDsp(number, Chassis);
var cecPort = inputCard.DmInput as ICec; AddDmInCardPorts(number, inputCard.DmInput,inputCard.DmInput);
AddDmInCardPorts(number, cecPort);
}
break; break;
}
case "dmc4kzc": case "dmc4kzc":
{ {
var inputCard = new Dmc4kzC(number, this.Chassis); var inputCard = new Dmc4kzC(number, Chassis);
var cecPort = inputCard.DmInput as ICec; AddDmInCardPorts(number, inputCard.DmInput,inputCard.DmInput);
AddDmInCardPorts(number, cecPort);
}
break; break;
}
case "dmc4kzcdsp": case "dmc4kzcdsp":
{ {
var inputCard = new Dmc4kzCDsp(number, this.Chassis); var inputCard = new Dmc4kzCDsp(number, Chassis);
var cecPort = inputCard.DmInput as ICec; AddDmInCardPorts(number, inputCard.DmInput, inputCard.DmInput);
AddDmInCardPorts(number, cecPort); break;
} }
break;
case "dmccat": case "dmccat":
new DmcCat(number, this.Chassis); {
AddDmInCardPorts(number); var inputCard = new DmcCat(number, Chassis);
AddDmInCardPorts(number, null, inputCard.DmInput);
break; break;
}
case "dmccatdsp": case "dmccatdsp":
new DmcCatDsp(number, this.Chassis); {
AddDmInCardPorts(number); var inputCard = new DmcCatDsp(number, Chassis);
AddDmInCardPorts(number, null, inputCard.DmInput);
break; break;
}
case "dmcs": case "dmcs":
new DmcS(number, Chassis); {
AddInputPortWithDebug(number, "dmIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.DmMmFiber); var inputCard = new DmcS(number, Chassis);
AddInputPortWithDebug(number, "dmIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.DmMmFiber, null, inputCard.DmInput);
AddInCardHdmiAndAudioLoopPorts(number); AddInCardHdmiAndAudioLoopPorts(number);
break; break;
}
case "dmcsdsp": case "dmcsdsp":
new DmcSDsp(number, Chassis); {
AddInputPortWithDebug(number, "dmIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.DmMmFiber); var inputCard = new DmcSDsp(number, Chassis);
AddInputPortWithDebug(number, "dmIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.DmMmFiber, null, inputCard.DmInput);
AddInCardHdmiAndAudioLoopPorts(number); AddInCardHdmiAndAudioLoopPorts(number);
break; break;
}
case "dmcs2": case "dmcs2":
new DmcS2(number, Chassis); {
AddInputPortWithDebug(number, "dmIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.DmSmFiber); var inputCard = new DmcS2(number, Chassis);
AddInputPortWithDebug(number, "dmIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.DmSmFiber, null, inputCard.DmInput);
AddInCardHdmiAndAudioLoopPorts(number); AddInCardHdmiAndAudioLoopPorts(number);
break; break;
}
case "dmcs2dsp": case "dmcs2dsp":
new DmcS2Dsp(number, Chassis); {
AddInputPortWithDebug(number, "dmIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.DmSmFiber); var inputCard = new DmcS2Dsp(number, Chassis);
AddInputPortWithDebug(number, "dmIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.DmSmFiber, null, inputCard.DmInput);
AddInCardHdmiAndAudioLoopPorts(number); AddInCardHdmiAndAudioLoopPorts(number);
break; break;
}
case "dmcsdi": case "dmcsdi":
new DmcSdi(number, Chassis); {
AddInputPortWithDebug(number, "sdiIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.Sdi); var inputCard = new DmcSdi(number, Chassis);
AddInputPortWithDebug(number, "sdiIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.Sdi, null, inputCard.SdiInput);
AddOutputPortWithDebug(string.Format("inputCard{0}", number), "sdiOut", eRoutingSignalType.Audio | eRoutingSignalType.Video, AddOutputPortWithDebug(string.Format("inputCard{0}", number), "sdiOut", eRoutingSignalType.Audio | eRoutingSignalType.Video,
eRoutingPortConnectionType.Sdi, null); eRoutingPortConnectionType.Sdi, null);
AddInCardHdmiAndAudioLoopPorts(number); AddInCardHdmiAndAudioLoopPorts(number);
break; break;
}
case "dmcdvi": case "dmcdvi":
new DmcDvi(number, Chassis); {
AddInputPortWithDebug(number, "dviIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.Dvi); var inputCard = new DmcDvi(number, Chassis);
AddInputPortWithDebug(number, "dviIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.Dvi, null, inputCard.DviInput);
AddInputPortWithDebug(number, "audioIn", eRoutingSignalType.Audio, eRoutingPortConnectionType.LineAudio); AddInputPortWithDebug(number, "audioIn", eRoutingSignalType.Audio, eRoutingPortConnectionType.LineAudio);
AddInCardHdmiLoopPort(number); AddInCardHdmiLoopPort(number);
break; break;
}
case "dmcvga": case "dmcvga":
new DmcVga(number, Chassis); {
AddInputPortWithDebug(number, "vgaIn", eRoutingSignalType.Video, eRoutingPortConnectionType.Vga); var inputCard = new DmcVga(number, Chassis);
AddInputPortWithDebug(number, "vgaIn", eRoutingSignalType.Video, eRoutingPortConnectionType.Vga, null, inputCard.VgaInput);
AddInputPortWithDebug(number, "audioIn", eRoutingSignalType.Audio, eRoutingPortConnectionType.LineAudio); AddInputPortWithDebug(number, "audioIn", eRoutingSignalType.Audio, eRoutingPortConnectionType.LineAudio);
AddInCardHdmiLoopPort(number); AddInCardHdmiLoopPort(number);
break; break;
}
case "dmcvidbnc": case "dmcvidbnc":
new DmcVidBnc(number, Chassis); {
AddInputPortWithDebug(number, "componentIn", eRoutingSignalType.Video, eRoutingPortConnectionType.Component); var inputCard = new DmcVidBnc(number, Chassis);
AddInputPortWithDebug(number, "componentIn", eRoutingSignalType.Video, eRoutingPortConnectionType.Component, null, inputCard.VideoInput);
AddInputPortWithDebug(number, "audioIn", eRoutingSignalType.Audio, eRoutingPortConnectionType.LineAudio); AddInputPortWithDebug(number, "audioIn", eRoutingSignalType.Audio, eRoutingPortConnectionType.LineAudio);
AddInCardHdmiLoopPort(number); AddInCardHdmiLoopPort(number);
break; break;
}
case "dmcvidrcaa": case "dmcvidrcaa":
new DmcVidRcaA(number, Chassis); {
AddInputPortWithDebug(number, "componentIn", eRoutingSignalType.Video, eRoutingPortConnectionType.Component); var inputCard = new DmcVidRcaA(number, Chassis);
AddInputPortWithDebug(number, "componentIn", eRoutingSignalType.Video, eRoutingPortConnectionType.Component, null, inputCard.VideoInput);
AddInputPortWithDebug(number, "audioIn", eRoutingSignalType.Audio, eRoutingPortConnectionType.LineAudio); AddInputPortWithDebug(number, "audioIn", eRoutingSignalType.Audio, eRoutingPortConnectionType.LineAudio);
AddInCardHdmiLoopPort(number); AddInCardHdmiLoopPort(number);
break; break;
}
case "dmcvidrcad": case "dmcvidrcad":
new DmcVidRcaD(number, Chassis); {
AddInputPortWithDebug(number, "componentIn", eRoutingSignalType.Video, eRoutingPortConnectionType.Component); var inputCard = new DmcVidRcaD(number, Chassis);
AddInputPortWithDebug(number, "componentIn", eRoutingSignalType.Video, eRoutingPortConnectionType.Component, null, inputCard.VideoInput);
AddInputPortWithDebug(number, "audioIn", eRoutingSignalType.Audio, eRoutingPortConnectionType.DigitalAudio); AddInputPortWithDebug(number, "audioIn", eRoutingSignalType.Audio, eRoutingPortConnectionType.DigitalAudio);
AddInCardHdmiLoopPort(number); AddInCardHdmiLoopPort(number);
break; break;
}
case "dmcvid4": case "dmcvid4":
new DmcVid4(number, Chassis); {
var inputCard = new DmcVid4(number, Chassis);
AddInputPortWithDebug(number, "compositeIn1", eRoutingSignalType.Video, eRoutingPortConnectionType.Composite); AddInputPortWithDebug(number, "compositeIn1", eRoutingSignalType.Video, eRoutingPortConnectionType.Composite);
AddInputPortWithDebug(number, "compositeIn2", eRoutingSignalType.Video, eRoutingPortConnectionType.Composite); AddInputPortWithDebug(number, "compositeIn2", eRoutingSignalType.Video, eRoutingPortConnectionType.Composite);
AddInputPortWithDebug(number, "compositeIn3", eRoutingSignalType.Video, eRoutingPortConnectionType.Composite); AddInputPortWithDebug(number, "compositeIn3", eRoutingSignalType.Video, eRoutingPortConnectionType.Composite);
AddInputPortWithDebug(number, "compositeIn4", eRoutingSignalType.Video, eRoutingPortConnectionType.Composite); AddInputPortWithDebug(number, "compositeIn4", eRoutingSignalType.Video, eRoutingPortConnectionType.Composite);
AddInCardHdmiLoopPort(number); AddInCardHdmiLoopPort(number);
break; break;
}
case "dmcstr": case "dmcstr":
new DmcStr(number, Chassis); {
AddInputPortWithDebug(number, "streamIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.Streaming); var inputCard = new DmcStr(number, Chassis);
AddInputPortWithDebug(number, "streamIn", eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.Streaming, null, inputCard.Source);
AddInCardHdmiAndAudioLoopPorts(number); AddInCardHdmiAndAudioLoopPorts(number);
break; break;
}
} }
} }
@@ -1089,7 +1112,7 @@ namespace PepperDash.Essentials.DM
var inputNumber = Chassis.Outputs[output].VideoOutFeedback == null ? 0 : Chassis. var inputNumber = Chassis.Outputs[output].VideoOutFeedback == null ? 0 : Chassis.
Outputs[output].VideoOutFeedback.Number; Outputs[output].VideoOutFeedback.Number;
Debug.Console(2, this, "DMSwitchVideo:{0} Routed Input:{1} Output:{2}'", this.Name, inputNumber, output); Debug.Console(2, this, "DMSwitchVideo:{0} Routed Input:{1} Output:{2}'", Name, inputNumber, output);
if (VideoOutputFeedbacks.ContainsKey(output)) if (VideoOutputFeedbacks.ContainsKey(output))
{ {
@@ -1116,7 +1139,7 @@ namespace PepperDash.Essentials.DM
var inputNumber = Chassis.Outputs[output].AudioOutFeedback == null ? 0 : Chassis. var inputNumber = Chassis.Outputs[output].AudioOutFeedback == null ? 0 : Chassis.
Outputs[output].AudioOutFeedback.Number; Outputs[output].AudioOutFeedback.Number;
Debug.Console(2, this, "DMSwitchAudio:{0} Routed Input:{1} Output:{2}'", this.Name, inputNumber, output); Debug.Console(2, this, "DMSwitchAudio:{0} Routed Input:{1} Output:{2}'", Name, inputNumber, output);
if (AudioOutputFeedbacks.ContainsKey(output)) if (AudioOutputFeedbacks.ContainsKey(output))
{ {
@@ -1427,6 +1450,13 @@ namespace PepperDash.Essentials.DM
{ {
trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber + ioSlotJoin].UShortValue = 1; trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber + ioSlotJoin].UShortValue = 1;
} }
var videoStatus = inputPort as RoutingInputPortWithVideoStatuses;
if (videoStatus != null)
{
videoStatus.VideoStatus.VideoResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.InputCurrentResolution.JoinNumber + ioSlotJoin]);
}
} }
private void LinkStreamInputToApi(BasicTriList trilist, uint ioSlot, DmChassisControllerJoinMap joinMap, uint ioSlotJoin) private void LinkStreamInputToApi(BasicTriList trilist, uint ioSlot, DmChassisControllerJoinMap joinMap, uint ioSlotJoin)
@@ -1467,6 +1497,13 @@ namespace PepperDash.Essentials.DM
InputStreamCardStateFeedbacks[ioSlot].LinkInputSig(trilist.UShortInput[join]); InputStreamCardStateFeedbacks[ioSlot].LinkInputSig(trilist.UShortInput[join]);
trilist.UShortInput[join].UShortValue = InputStreamCardStateFeedbacks[ioSlot].UShortValue; trilist.UShortInput[join].UShortValue = InputStreamCardStateFeedbacks[ioSlot].UShortValue;
var videoStatus = inputPort as RoutingInputPortWithVideoStatuses;
if (videoStatus != null)
{
videoStatus.VideoStatus.VideoResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.InputCurrentResolution.JoinNumber + ioSlotJoin]);
}
} }
private void LinkStreamOutputToApi(BasicTriList trilist, uint ioSlot, DmChassisControllerJoinMap joinMap, uint ioSlotJoin) private void LinkStreamOutputToApi(BasicTriList trilist, uint ioSlot, DmChassisControllerJoinMap joinMap, uint ioSlotJoin)
@@ -1603,6 +1640,13 @@ namespace PepperDash.Essentials.DM
{ {
trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber + ioSlotJoin].UShortValue = 1; trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber + ioSlotJoin].UShortValue = 1;
} }
var videoStatus = inputPort as RoutingInputPortWithVideoStatuses;
if (videoStatus != null)
{
videoStatus.VideoStatus.VideoResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.InputCurrentResolution.JoinNumber + ioSlotJoin]);
}
} }
private void LinkAdvancedTxToApi(BasicTriList trilist, DmChassisControllerJoinMap joinMap, private void LinkAdvancedTxToApi(BasicTriList trilist, DmChassisControllerJoinMap joinMap,
@@ -1653,6 +1697,13 @@ namespace PepperDash.Essentials.DM
trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber + ioSlotJoin].UShortValue = trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber + ioSlotJoin].UShortValue =
(ushort) transmitter.HdcpSupportCapability; (ushort) transmitter.HdcpSupportCapability;
var videoStatus = txRoutingInputs.InputPorts.Cast<RoutingInputPortWithVideoStatuses>().FirstOrDefault((ip) => ip.Key == DmPortName.AnyVideoIn);
if (videoStatus != null)
{
videoStatus.VideoStatus.VideoResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.InputCurrentResolution.JoinNumber + ioSlotJoin]);
}
} }
private void LinkTxOnlineFeedbackToApi(BasicTriList trilist, uint ioSlot, DmChassisControllerJoinMap joinMap, private void LinkTxOnlineFeedbackToApi(BasicTriList trilist, uint ioSlot, DmChassisControllerJoinMap joinMap,
@@ -1935,15 +1986,15 @@ namespace PepperDash.Essentials.DM
{ {
var props = JsonConvert.DeserializeObject var props = JsonConvert.DeserializeObject
<PepperDash.Essentials.DM.Config.DMChassisPropertiesConfig>(dc.Properties.ToString()); <DMChassisPropertiesConfig>(dc.Properties.ToString());
return PepperDash.Essentials.DM.DmChassisController. return DmChassisController.
GetDmChassisController(dc.Key, dc.Name, type, props); GetDmChassisController(dc.Key, dc.Name, type, props);
} }
else if (type.StartsWith("dmmd128x") || type.StartsWith("dmmd64x")) else if (type.StartsWith("dmmd128x") || type.StartsWith("dmmd64x"))
{ {
var props = JsonConvert.DeserializeObject var props = JsonConvert.DeserializeObject
<PepperDash.Essentials.DM.Config.DMChassisPropertiesConfig>(dc.Properties.ToString()); <DMChassisPropertiesConfig>(dc.Properties.ToString());
return PepperDash.Essentials.DM.DmBladeChassisController. return DmBladeChassisController.
GetDmChassisController(dc.Key, dc.Name, type, props); GetDmChassisController(dc.Key, dc.Name, type, props);
} }