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 91085fca..0315ee1e 100644
--- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmcHelper.cs
+++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Receivers/DmRmcHelper.cs
@@ -1,12 +1,7 @@
using System;
using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport;
using Crestron.SimplSharpPro.DM;
-using Crestron.SimplSharpPro.DM.Endpoints;
using Crestron.SimplSharpPro.DM.Endpoints.Receivers;
using Newtonsoft.Json;
using PepperDash.Core;
@@ -20,20 +15,18 @@ namespace PepperDash.Essentials.DM
[Description("Wrapper class for all DM-RMC variants")]
public abstract class DmRmcControllerBase : CrestronGenericBridgeableBaseDevice
{
- public virtual StringFeedback VideoOutputResolutionFeedback { get; protected set; }
- public virtual StringFeedback EdidManufacturerFeedback { get; protected set; }
- public virtual StringFeedback EdidNameFeedback { get; protected set; }
- public virtual StringFeedback EdidPreferredTimingFeedback { get; protected set; }
- public virtual StringFeedback EdidSerialNumberFeedback { get; protected set; }
+ public StringFeedback VideoOutputResolutionFeedback { get; protected set; }
+ public StringFeedback EdidManufacturerFeedback { get; protected set; }
+ public StringFeedback EdidNameFeedback { get; protected set; }
+ public StringFeedback EdidPreferredTimingFeedback { get; protected set; }
+ public StringFeedback EdidSerialNumberFeedback { get; protected set; }
protected DmRmcControllerBase(string key, string name, EndpointReceiverBase device)
: base(key, name, device)
{
// if wired to a chassis, skip registration step in base class
- if (device.DMOutput != null)
- {
- this.PreventRegistration = true;
- }
+ PreventRegistration = device.DMOutput != null;
+
AddToFeedbackList(VideoOutputResolutionFeedback, EdidManufacturerFeedback, EdidSerialNumberFeedback, EdidNameFeedback, EdidPreferredTimingFeedback);
}
@@ -65,13 +58,15 @@ namespace PepperDash.Essentials.DM
//If the device is an DM-RMC-4K-Z-SCALER-C
var routing = rmc as IRmcRouting;
- if (routing != null)
+ if (routing == null)
{
- if (routing.AudioVideoSourceNumericFeedback != null)
- routing.AudioVideoSourceNumericFeedback.LinkInputSig(trilist.UShortInput[joinMap.AudioVideoSource]);
-
- trilist.SetUShortSigAction(joinMap.AudioVideoSource, (a) => routing.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo));
+ return;
}
+
+ if (routing.AudioVideoSourceNumericFeedback != null)
+ routing.AudioVideoSourceNumericFeedback.LinkInputSig(trilist.UShortInput[joinMap.AudioVideoSource]);
+
+ trilist.SetUShortSigAction(joinMap.AudioVideoSource, a => routing.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo));
}
}
@@ -82,7 +77,7 @@ namespace PepperDash.Essentials.DM
///
/// Make a Crestron RMC and put it in here
///
- public DmHdBaseTControllerBase(string key, string name, HDBaseTBase rmc)
+ protected DmHdBaseTControllerBase(string key, string name, HDBaseTBase rmc)
: base(key, name, rmc)
{
@@ -91,14 +86,15 @@ namespace PepperDash.Essentials.DM
public class DmRmcHelper
{
- ///
- /// A factory method for various DmTxControllers
- ///
- ///
- ///
- ///
- ///
- public static CrestronGenericBaseDevice GetDmRmcController(string key, string name, string typeName, DmRmcPropertiesConfig props)
+ ///
+ /// A factory method for various DmRmcControllers
+ ///
+ /// device key. Used to uniquely identify device
+ /// device name
+ /// device type name. Used to retrived the correct device
+ /// Config from config file
+ ///
+ public static CrestronGenericBaseDevice GetDmRmcController(string key, string name, string typeName, DmRmcPropertiesConfig props)
{
// switch on type name... later...
@@ -128,22 +124,11 @@ namespace PepperDash.Essentials.DM
// "destinationPort": "DmIn"
//}
- var tlc = TieLineCollection.Default;
- // grab the tie line that has this key as
+ // grab the tie line that has this key as
// THIS DOESN'T WORK BECAUSE THE RMC THAT WE NEED (THIS) HASN'T BEEN MADE
// YET AND THUS WILL NOT HAVE A TIE LINE...
- var inputTieLine = tlc.FirstOrDefault(t =>
- {
- var d = t.DestinationPort.ParentDevice;
- return d.Key.Equals(key, StringComparison.OrdinalIgnoreCase)
- && d is DmChassisController;
- });
-
var pKey = props.ParentDeviceKey.ToLower();
-
-
-
// Non-DM-chassis endpoints
if (pKey == "processor")
{
@@ -200,18 +185,17 @@ namespace PepperDash.Essentials.DM
var chassis = (parentDev as IDmSwitch).Chassis;
var num = props.ParentOutputNumber;
+
if (num <= 0 || num > chassis.NumberOfOutputs)
{
Debug.Console(0, "Cannot create DM device '{0}'. Output number '{1}' is out of range",
key, num);
return null;
}
- else
- {
- var controller = (parentDev as IDmSwitch);
- controller.RxDictionary.Add(num, key);
- }
- // Catch constructor failures, mainly dues to IPID
+
+ var controller = (parentDev as IDmSwitch);
+ controller.RxDictionary.Add(num, key);
+ // Catch constructor failures, mainly dues to IPID
try
{
@@ -305,7 +289,8 @@ namespace PepperDash.Essentials.DM
{
public DmRmcControllerFactory()
{
- TypeNames = new List() { "hdbasetrx", "dmrmc4k100c1g", "dmrmc100c", "dmrmc100s", "dmrmc4k100c", "dmrmc150s",
+ TypeNames = new List
+ { "hdbasetrx", "dmrmc4k100c1g", "dmrmc100c", "dmrmc100s", "dmrmc4k100c", "dmrmc150s",
"dmrmc200c", "dmrmc200s", "dmrmc200s2", "dmrmcscalerc", "dmrmcscalers", "dmrmcscalers2", "dmrmc4kscalerc", "dmrmc4kscalercdsp",
"dmrmc4kz100c", "dmrmckzscalerc" };
}
@@ -317,8 +302,8 @@ namespace PepperDash.Essentials.DM
Debug.Console(1, "Factory Attempting to create new DM-RMC Device");
var props = JsonConvert.DeserializeObject
- (dc.Properties.ToString());
- return PepperDash.Essentials.DM.DmRmcHelper.GetDmRmcController(dc.Key, dc.Name, type, props);
+ (dc.Properties.ToString());
+ return DmRmcHelper.GetDmRmcController(dc.Key, dc.Name, type, props);
}
}