diff --git a/essentials-framework/Essentials DM/Essentials_DM/Chassis/DmpsRoutingController.cs b/essentials-framework/Essentials DM/Essentials_DM/Chassis/DmpsRoutingController.cs index 061f7557..adf73bde 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Chassis/DmpsRoutingController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Chassis/DmpsRoutingController.cs @@ -118,7 +118,10 @@ namespace PepperDash.Essentials.DM OutputEndpointOnlineFeedbacks = new Dictionary(); Debug.Console(1, this, "{0} Switcher Inputs Present.", Dmps.SwitcherInputs.Count); - Debug.Console(1, this, "{0} Switcher Outputs Present.", Dmps.SwitcherOutputs.Count); + Debug.Console(1, this, "{0} Switcher Outputs Present.", Dmps.SwitcherOutputs.Count); + + Debug.Console(1, this, "{0} Inputs in ControlSystem", Dmps.NumberOfSwitcherInputs); + Debug.Console(1, this, "{0} Outputs in ControlSystem", Dmps.NumberOfSwitcherOutputs); SetupOutputCards(); @@ -200,7 +203,7 @@ namespace PepperDash.Essentials.DM private void LinkOutputsToApi(BasicTriList trilist, DmpsRoutingControllerJoinMap joinMap) { - for (uint i = 1; i <= Dmps.NumberOfSwitcherOutputs; i++) + for (uint i = 1; i <= Dmps.SwitcherOutputs.Count; i++) { Debug.Console(2, this, "Linking Output Card {0}", i); @@ -274,7 +277,7 @@ namespace PepperDash.Essentials.DM private void LinkInputsToApi(BasicTriList trilist, DmpsRoutingControllerJoinMap joinMap) { - for (uint i = 1; i <= Dmps.NumberOfSwitcherInputs; i++) + for (uint i = 1; i <= Dmps.SwitcherInputs.Count; i++) { Debug.Console(2, this, "Linking Input Card {0}", i); @@ -328,12 +331,15 @@ namespace PepperDash.Essentials.DM /// void SetupOutputCards() { - foreach (var card in Dmps.SwitcherOutputs) - { + foreach (var card in Dmps.SwitcherOutputs) + { + Debug.Console(1, this, "Output Card Type: {0}", card.CardInputOutputType); + var outputCard = card as DMOutput; if (outputCard == null) { + Debug.Console(1, this, "Output card {0} is not a DMOutput", card.CardInputOutputType); continue; } @@ -535,18 +541,23 @@ namespace PepperDash.Essentials.DM var cecPort = hdmiOutputCard.HdmiOutputPort; - AddHdmiOutputPort(number, cecPort); - - return; + AddHdmiOutputPort(number, cecPort); + } + else if (outputCard is Card.Dmps3HdmiOutputBackend) + { + var hdmiOutputCard = outputCard as Card.Dmps3HdmiOutputBackend; + + var cecPort = hdmiOutputCard.HdmiOutputPort; + + AddHdmiOutputPort(number, cecPort); } else if (outputCard is Card.Dmps3DmOutput) - { - var dmOutputCard = outputCard as Card.Dmps3DmOutput; - - var cecPort = dmOutputCard.DmOutputPort; - - AddDmOutputPort(number); - return; + { + AddDmOutputPort(number); + } + else if (outputCard is Card.Dmps3DmOutputBackend) + { + AddDmOutputPort(number); } else if (outputCard is Card.Dmps3ProgramOutput) { @@ -554,50 +565,51 @@ namespace PepperDash.Essentials.DM var programOutput = new DmpsAudioOutputController(string.Format("processor-programAudioOutput"), "Program Audio Output", outputCard as Card.Dmps3OutputBase); - DeviceManager.AddDevice(programOutput); - - return; + DeviceManager.AddDevice(programOutput); } - else if (outputCard is Card.Dmps3AuxOutput) - { - if (outputCard.CardInputOutputType == eCardInputOutputType.Dmps3Aux1Output) - { - AddAudioOnlyOutputPort(number, "Aux1"); + else if (outputCard is Card.Dmps3AuxOutput) + { + switch (outputCard.CardInputOutputType) + { + case eCardInputOutputType.Dmps3Aux1Output: + { + AddAudioOnlyOutputPort(number, "Aux1"); - var aux1Output = new DmpsAudioOutputController(string.Format("processor-aux1AudioOutput"), "Program Audio Output", outputCard as Card.Dmps3OutputBase); + var aux1Output = new DmpsAudioOutputController(string.Format("processor-aux1AudioOutput"), "Program Audio Output", outputCard as Card.Dmps3OutputBase); - DeviceManager.AddDevice(aux1Output); - } - else if (outputCard.CardInputOutputType == eCardInputOutputType.Dmps3Aux2Output) - { - AddAudioOnlyOutputPort(number, "Aux2"); + DeviceManager.AddDevice(aux1Output); + } + break; + case eCardInputOutputType.Dmps3Aux2Output: + { + AddAudioOnlyOutputPort(number, "Aux2"); - var aux2Output = new DmpsAudioOutputController(string.Format("processor-aux2AudioOutput"), "Program Audio Output", outputCard as Card.Dmps3OutputBase); + var aux2Output = new DmpsAudioOutputController(string.Format("processor-aux2AudioOutput"), "Program Audio Output", outputCard as Card.Dmps3OutputBase); - DeviceManager.AddDevice(aux2Output); - } - return; - } - else if (outputCard is Card.Dmps3CodecOutput) - { - if (number == (uint)CrestronControlSystem.eDmps300cOutputs.Codec1 - || number == (uint)CrestronControlSystem.eDmps3200cOutputs.Codec1 - || number == (uint)CrestronControlSystem.eDmps3300cAecOutputs.Codec1 - || number == (uint)CrestronControlSystem.eDmps34K250COutputs.Codec1 - || number == (uint)CrestronControlSystem.eDmps34K350COutputs.Codec1) - AddAudioOnlyOutputPort(number, CrestronControlSystem.eDmps300cOutputs.Codec1.ToString()); - else if (number == (uint)CrestronControlSystem.eDmps300cOutputs.Codec2 - || number == (uint)CrestronControlSystem.eDmps3200cOutputs.Codec2 - || number == (uint)CrestronControlSystem.eDmps3300cAecOutputs.Codec2 - || number == (uint)CrestronControlSystem.eDmps34K250COutputs.Codec2 - || number == (uint)CrestronControlSystem.eDmps34K350COutputs.Codec2) - AddAudioOnlyOutputPort(number, CrestronControlSystem.eDmps300cOutputs.Codec2.ToString()); - return; - } + DeviceManager.AddDevice(aux2Output); + } + break; + } + } + else if (outputCard is Card.Dmps3CodecOutput) + { + switch (number) + { + case (uint)CrestronControlSystem.eDmps34K350COutputs.Codec1: + case (uint)CrestronControlSystem.eDmps34K250COutputs.Codec1: + case (uint)CrestronControlSystem.eDmps3300cAecOutputs.Codec1: + AddAudioOnlyOutputPort(number, CrestronControlSystem.eDmps300cOutputs.Codec1.ToString()); + break; + case (uint)CrestronControlSystem.eDmps34K350COutputs.Codec2: + case (uint)CrestronControlSystem.eDmps34K250COutputs.Codec2: + case (uint)CrestronControlSystem.eDmps3300cAecOutputs.Codec2: + AddAudioOnlyOutputPort(number, CrestronControlSystem.eDmps300cOutputs.Codec2.ToString()); + break; + } + } else if (outputCard is Card.Dmps3DialerOutput) { - AddAudioOnlyOutputPort(number, "Dialer"); - return; + AddAudioOnlyOutputPort(number, "Dialer"); } else if (outputCard is Card.Dmps3DigitalMixOutput) { @@ -608,13 +620,11 @@ namespace PepperDash.Essentials.DM if (number == (uint)CrestronControlSystem.eDmps34K250COutputs.Mix2 || number == (uint)CrestronControlSystem.eDmps34K300COutputs.Mix2 || number == (uint)CrestronControlSystem.eDmps34K350COutputs.Mix2) - AddAudioOnlyOutputPort(number, CrestronControlSystem.eDmps34K250COutputs.Mix2.ToString()); - return; + AddAudioOnlyOutputPort(number, CrestronControlSystem.eDmps34K250COutputs.Mix2.ToString()); } else if (outputCard is Card.Dmps3AecOutput) { - AddAudioOnlyOutputPort(number, "Aec"); - return; + AddAudioOnlyOutputPort(number, "Aec"); } else { diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmcHelper.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmcHelper.cs index 40c4b0aa..7cc913e2 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmcHelper.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmcHelper.cs @@ -296,7 +296,7 @@ namespace PepperDash.Essentials.DM Func dmpsHandler; if (ChassisCpu3Dict.TryGetValue(typeName.ToLower(), out dmpsHandler)) { - var output = controller.Dmps.SwitcherOutputs[num] as Card.Dmps3DmOutput; + var output = controller.Dmps.SwitcherOutputs[num] as DMOutput; if (output != null) {