Merge branch 'development' into feature/Add_DM-RMC-4K-Z-100-C

This commit is contained in:
Andrew Welker
2020-04-29 13:07:29 -06:00
committed by GitHub
5 changed files with 539 additions and 495 deletions

View File

@@ -38,8 +38,12 @@ namespace PepperDash.Essentials.Bridges
/// Reports the EDID serial number value /// Reports the EDID serial number value
/// </summary> /// </summary>
public uint EdidSerialNumber { get; set; } public uint EdidSerialNumber { get; set; }
#endregion #endregion
#region Analogs
public uint AudioVideoSource { get; set; }
#endregion
public DmRmcControllerJoinMap() public DmRmcControllerJoinMap()
{ {
// Digital // Digital
@@ -51,6 +55,9 @@ namespace PepperDash.Essentials.Bridges
EdidName = 3; EdidName = 3;
EdidPrefferedTiming = 4; EdidPrefferedTiming = 4;
EdidSerialNumber = 5; EdidSerialNumber = 5;
//Analog
AudioVideoSource = 1;
} }
public override void OffsetJoinNumbers(uint joinStart) public override void OffsetJoinNumbers(uint joinStart)
@@ -62,7 +69,8 @@ namespace PepperDash.Essentials.Bridges
EdidManufacturer = EdidManufacturer + joinOffset; EdidManufacturer = EdidManufacturer + joinOffset;
EdidName = EdidName + joinOffset; EdidName = EdidName + joinOffset;
EdidPrefferedTiming = EdidPrefferedTiming + joinOffset; EdidPrefferedTiming = EdidPrefferedTiming + joinOffset;
EdidSerialNumber = EdidSerialNumber + joinOffset; EdidSerialNumber = EdidSerialNumber + joinOffset;
AudioVideoSource = AudioVideoSource + joinOffset;
} }
} }
} }

View File

@@ -37,31 +37,39 @@ namespace PepperDash.Essentials.Core.Bridges
/// Reports the EDID serial number value /// Reports the EDID serial number value
/// </summary> /// </summary>
public uint EdidSerialNumber { get; set; } public uint EdidSerialNumber { get; set; }
#endregion #endregion
public DmRmcControllerJoinMap() #region Analogs
{ public uint AudioVideoSource { get; set; }
// Digital #endregion
IsOnline = 1;
public DmRmcControllerJoinMap()
// Serial {
CurrentOutputResolution = 1; // Digital
EdidManufacturer = 2; IsOnline = 1;
EdidName = 3;
EdidPrefferedTiming = 4; // Serial
EdidSerialNumber = 5; CurrentOutputResolution = 1;
} EdidManufacturer = 2;
EdidName = 3;
public override void OffsetJoinNumbers(uint joinStart) EdidPrefferedTiming = 4;
{ EdidSerialNumber = 5;
var joinOffset = joinStart - 1;
//Analog
IsOnline = IsOnline + joinOffset; AudioVideoSource = 1;
CurrentOutputResolution = CurrentOutputResolution + joinOffset; }
EdidManufacturer = EdidManufacturer + joinOffset;
EdidName = EdidName + joinOffset; public override void OffsetJoinNumbers(uint joinStart)
EdidPrefferedTiming = EdidPrefferedTiming + joinOffset; {
EdidSerialNumber = EdidSerialNumber + joinOffset; var joinOffset = joinStart - 1;
}
IsOnline = IsOnline + joinOffset;
CurrentOutputResolution = CurrentOutputResolution + joinOffset;
EdidManufacturer = EdidManufacturer + joinOffset;
EdidName = EdidName + joinOffset;
EdidPrefferedTiming = EdidPrefferedTiming + joinOffset;
EdidSerialNumber = EdidSerialNumber + joinOffset;
AudioVideoSource = AudioVideoSource + joinOffset;
}
} }
} }

View File

@@ -89,6 +89,15 @@ namespace PepperDash.Essentials.Core
IntFeedback VideoSourceNumericFeedback { get; } IntFeedback VideoSourceNumericFeedback { get; }
IntFeedback AudioSourceNumericFeedback { get; } IntFeedback AudioSourceNumericFeedback { get; }
void ExecuteNumericSwitch(ushort input, ushort output, eRoutingSignalType type); void ExecuteNumericSwitch(ushort input, ushort output, eRoutingSignalType type);
}
/// <summary>
/// Defines a receiver that has internal routing (DM-RMC-4K-Z-SCALER-C)
/// </summary>
public interface IRmcRouting : IRouting
{
IntFeedback AudioVideoSourceNumericFeedback { get; }
void ExecuteNumericSwitch(ushort input, ushort output, eRoutingSignalType type);
} }
/// <summary> /// <summary>

View File

@@ -1,308 +1,326 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using Crestron.SimplSharp; using Crestron.SimplSharp;
using Crestron.SimplSharpPro; using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport; using Crestron.SimplSharpPro.DeviceSupport;
using Crestron.SimplSharpPro.DM; using Crestron.SimplSharpPro.DM;
using Crestron.SimplSharpPro.DM.Endpoints; using Crestron.SimplSharpPro.DM.Endpoints;
using Crestron.SimplSharpPro.DM.Endpoints.Receivers; using Crestron.SimplSharpPro.DM.Endpoints.Receivers;
using Newtonsoft.Json; using Newtonsoft.Json;
using PepperDash.Core; using PepperDash.Core;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges; using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.DM.Config; using PepperDash.Essentials.DM.Config;
using PepperDash.Essentials.Core.Config; using PepperDash.Essentials.Core.Config;
namespace PepperDash.Essentials.DM namespace PepperDash.Essentials.DM
{ {
[Description("Wrapper class for all DM-RMC variants")] [Description("Wrapper class for all DM-RMC variants")]
public abstract class DmRmcControllerBase : CrestronGenericBridgeableBaseDevice public abstract class DmRmcControllerBase : CrestronGenericBridgeableBaseDevice
{ {
public virtual StringFeedback VideoOutputResolutionFeedback { get; protected set; } public virtual StringFeedback VideoOutputResolutionFeedback { get; protected set; }
public virtual StringFeedback EdidManufacturerFeedback { get; protected set; } public virtual StringFeedback EdidManufacturerFeedback { get; protected set; }
public virtual StringFeedback EdidNameFeedback { get; protected set; } public virtual StringFeedback EdidNameFeedback { get; protected set; }
public virtual StringFeedback EdidPreferredTimingFeedback { get; protected set; } public virtual StringFeedback EdidPreferredTimingFeedback { get; protected set; }
public virtual StringFeedback EdidSerialNumberFeedback { get; protected set; } public virtual StringFeedback EdidSerialNumberFeedback { get; protected set; }
protected DmRmcControllerBase(string key, string name, EndpointReceiverBase device) protected DmRmcControllerBase(string key, string name, EndpointReceiverBase device)
: base(key, name, device) : base(key, name, device)
{ {
// if wired to a chassis, skip registration step in base class // if wired to a chassis, skip registration step in base class
if (device.DMOutput != null) if (device.DMOutput != null)
{ {
this.PreventRegistration = true; this.PreventRegistration = true;
} }
AddToFeedbackList(VideoOutputResolutionFeedback, EdidManufacturerFeedback, EdidSerialNumberFeedback, EdidNameFeedback, EdidPreferredTimingFeedback); AddToFeedbackList(VideoOutputResolutionFeedback, EdidManufacturerFeedback, EdidSerialNumberFeedback, EdidNameFeedback, EdidPreferredTimingFeedback);
} }
protected void LinkDmRmcToApi(DmRmcControllerBase rmc, BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) protected void LinkDmRmcToApi(DmRmcControllerBase rmc, BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
var joinMap = new DmRmcControllerJoinMap(); var joinMap = new DmRmcControllerJoinMap();
var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey);
if (!string.IsNullOrEmpty(joinMapSerialized)) if (!string.IsNullOrEmpty(joinMapSerialized))
joinMap = JsonConvert.DeserializeObject<DmRmcControllerJoinMap>(joinMapSerialized); joinMap = JsonConvert.DeserializeObject<DmRmcControllerJoinMap>(joinMapSerialized);
joinMap.OffsetJoinNumbers(joinStart); joinMap.OffsetJoinNumbers(joinStart);
Debug.Console(1, rmc, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); Debug.Console(1, rmc, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
rmc.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); rmc.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]);
if (rmc.VideoOutputResolutionFeedback != null) if (rmc.VideoOutputResolutionFeedback != null)
rmc.VideoOutputResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.CurrentOutputResolution]); rmc.VideoOutputResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.CurrentOutputResolution]);
if (rmc.EdidManufacturerFeedback != null) if (rmc.EdidManufacturerFeedback != null)
rmc.EdidManufacturerFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidManufacturer]); rmc.EdidManufacturerFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidManufacturer]);
if (rmc.EdidNameFeedback != null) if (rmc.EdidNameFeedback != null)
rmc.EdidNameFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidName]); rmc.EdidNameFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidName]);
if (rmc.EdidPreferredTimingFeedback != null) if (rmc.EdidPreferredTimingFeedback != null)
rmc.EdidPreferredTimingFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidPrefferedTiming]); rmc.EdidPreferredTimingFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidPrefferedTiming]);
if (rmc.EdidSerialNumberFeedback != null) if (rmc.EdidSerialNumberFeedback != null)
rmc.EdidSerialNumberFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidSerialNumber]); rmc.EdidSerialNumberFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidSerialNumber]);
}
} //If the device is an DM-RMC-4K-Z-SCALER-C
var routing = rmc as IRmcRouting;
public abstract class DmHdBaseTControllerBase : CrestronGenericBaseDevice
{ if (routing != null)
public HDBaseTBase Rmc { get; protected set; } {
if (routing.AudioVideoSourceNumericFeedback != null)
/// <summary> routing.AudioVideoSourceNumericFeedback.LinkInputSig(trilist.UShortInput[joinMap.AudioVideoSource]);
/// Make a Crestron RMC and put it in here
/// </summary> trilist.SetUShortSigAction(joinMap.AudioVideoSource, (a) => routing.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo));
public DmHdBaseTControllerBase(string key, string name, HDBaseTBase rmc) }
: base(key, name, rmc) }
{ }
} public abstract class DmHdBaseTControllerBase : CrestronGenericBaseDevice
} {
public HDBaseTBase Rmc { get; protected set; }
public class DmRmcHelper
{ /// <summary>
/// <summary> /// Make a Crestron RMC and put it in here
/// A factory method for various DmTxControllers /// </summary>
/// </summary> public DmHdBaseTControllerBase(string key, string name, HDBaseTBase rmc)
/// <param name="key"></param> : base(key, name, rmc)
/// <param name="name"></param> {
/// <param name="props"></param>
/// <returns></returns> }
public static CrestronGenericBaseDevice GetDmRmcController(string key, string name, string typeName, DmRmcPropertiesConfig props) }
{
// switch on type name... later... public class DmRmcHelper
{
typeName = typeName.ToLower(); /// <summary>
uint ipid = props.Control.IpIdInt; // Convert.ToUInt16(props.Id, 16); /// A factory method for various DmTxControllers
/// </summary>
/// <param name="key"></param>
/// <param name="name"></param>
// right here, we need to grab the tie line that associates this /// <param name="props"></param>
// RMC with a chassis or processor. If the RMC input's tie line is not /// <returns></returns>
// connected to a chassis, then it's parent is the processor. public static CrestronGenericBaseDevice GetDmRmcController(string key, string name, string typeName, DmRmcPropertiesConfig props)
// If the RMC is connected to a chassis, then we need to grab the {
// output number from the tie line and use that to plug it in. // switch on type name... later...
// Example of chassis-connected:
//{ typeName = typeName.ToLower();
// "sourceKey": "dmMd8x8-1", uint ipid = props.Control.IpIdInt; // Convert.ToUInt16(props.Id, 16);
// "sourcePort": "anyOut2",
// "destinationKey": "dmRmc100C-2",
// "destinationPort": "DmIn"
//} // right here, we need to grab the tie line that associates this
// RMC with a chassis or processor. If the RMC input's tie line is not
// Tx -> RMC link: // connected to a chassis, then it's parent is the processor.
//{ // If the RMC is connected to a chassis, then we need to grab the
// "sourceKey": "dmTx201C-1", // output number from the tie line and use that to plug it in.
// "sourcePort": "DmOut", // Example of chassis-connected:
// "destinationKey": "dmRmc100C-2", //{
// "destinationPort": "DmIn" // "sourceKey": "dmMd8x8-1",
//} // "sourcePort": "anyOut2",
// "destinationKey": "dmRmc100C-2",
var tlc = TieLineCollection.Default; // "destinationPort": "DmIn"
// 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... // Tx -> RMC link:
var inputTieLine = tlc.FirstOrDefault(t => //{
{ // "sourceKey": "dmTx201C-1",
var d = t.DestinationPort.ParentDevice; // "sourcePort": "DmOut",
return d.Key.Equals(key, StringComparison.OrdinalIgnoreCase) // "destinationKey": "dmRmc100C-2",
&& d is DmChassisController; // "destinationPort": "DmIn"
}); //}
var pKey = props.ParentDeviceKey.ToLower(); var tlc = TieLineCollection.Default;
// 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 =>
// Non-DM-chassis endpoints {
if (pKey == "processor") var d = t.DestinationPort.ParentDevice;
{ return d.Key.Equals(key, StringComparison.OrdinalIgnoreCase)
// Catch constructor failures, mainly dues to IPID && d is DmChassisController;
try });
{
if (typeName.StartsWith("dmrmc100c")) var pKey = props.ParentDeviceKey.ToLower();
return new DmRmcX100CController(key, name, new DmRmc100C(ipid, Global.ControlSystem));
if (typeName.StartsWith("dmrmc100s"))
return new DmRmc100SController(key, name, new DmRmc100S(ipid, Global.ControlSystem));
if (typeName.StartsWith("dmrmc4k100c"))
return new DmRmcX100CController(key, name, new DmRmc4k100C(ipid, Global.ControlSystem)); // Non-DM-chassis endpoints
if (typeName.StartsWith("dmrmc4kz100c")) if (pKey == "processor")
return new DmRmc4kZ100CController(key, name, new DmRmc4kz100C(ipid, Global.ControlSystem)); {
if (typeName.StartsWith("dmrmc150s")) // Catch constructor failures, mainly dues to IPID
return new DmRmc150SController(key, name, new DmRmc150S(ipid, Global.ControlSystem)); try
if (typeName.StartsWith("dmrmc200c")) {
return new DmRmc200CController(key, name, new DmRmc200C(ipid, Global.ControlSystem)); if (typeName.StartsWith("dmrmc100c"))
if (typeName.StartsWith("dmrmc200s")) return new DmRmcX100CController(key, name, new DmRmc100C(ipid, Global.ControlSystem));
return new DmRmc200SController(key, name, new DmRmc200S(ipid, Global.ControlSystem)); if (typeName.StartsWith("dmrmc100s"))
if (typeName.StartsWith("dmrmc200s2")) return new DmRmc100SController(key, name, new DmRmc100S(ipid, Global.ControlSystem));
return new DmRmc200S2Controller(key, name, new DmRmc200S2(ipid, Global.ControlSystem)); if (typeName.StartsWith("dmrmc4k100c"))
if (typeName.StartsWith("dmrmcscalerc")) return new DmRmcX100CController(key, name, new DmRmc4k100C(ipid, Global.ControlSystem));
return new DmRmcScalerCController(key, name, new DmRmcScalerC(ipid, Global.ControlSystem)); if (typeName.StartsWith("dmrmc4kz100c"))
if (typeName.StartsWith("dmrmcscalers")) return new DmRmc4kZ100CController(key, name, new DmRmc4kz100C(ipid, Global.ControlSystem));
return new DmRmcScalerSController(key, name, new DmRmcScalerS(ipid, Global.ControlSystem)); if (typeName.StartsWith("dmrmc150s"))
if (typeName.StartsWith("dmrmcscalers2")) return new DmRmc150SController(key, name, new DmRmc150S(ipid, Global.ControlSystem));
return new DmRmcScalerS2Controller(key, name, new DmRmcScalerS2(ipid, Global.ControlSystem)); if (typeName.StartsWith("dmrmc200c"))
if (typeName.StartsWith("dmrmc4kscalerc")) return new DmRmc200CController(key, name, new DmRmc200C(ipid, Global.ControlSystem));
return new DmRmc4kScalerCController(key, name, new DmRmc4kScalerC(ipid, Global.ControlSystem)); if (typeName.StartsWith("dmrmc200s"))
if (typeName.StartsWith("dmrmc4kscalercdsp")) return new DmRmc200SController(key, name, new DmRmc200S(ipid, Global.ControlSystem));
return new DmRmc4kScalerCDspController(key, name, new DmRmc4kScalerCDsp(ipid, Global.ControlSystem)); if (typeName.StartsWith("dmrmc200s2"))
} return new DmRmc200S2Controller(key, name, new DmRmc200S2(ipid, Global.ControlSystem));
catch (Exception e) if (typeName.StartsWith("dmrmcscalerc"))
{ return new DmRmcScalerCController(key, name, new DmRmcScalerC(ipid, Global.ControlSystem));
Debug.Console(0, "[{0}] WARNING: Cannot create DM-RMC device: {1}", key, e.Message); if (typeName.StartsWith("dmrmcscalers"))
} return new DmRmcScalerSController(key, name, new DmRmcScalerS(ipid, Global.ControlSystem));
if (typeName.StartsWith("dmrmcscalers2"))
return new DmRmcScalerS2Controller(key, name, new DmRmcScalerS2(ipid, Global.ControlSystem));
Debug.Console(0, "Cannot create DM-RMC of type: '{0}'", typeName); if (typeName.StartsWith("dmrmc4kscalerc"))
} return new DmRmc4kScalerCController(key, name, new DmRmc4kScalerC(ipid, Global.ControlSystem));
// Endpoints attached to DM Chassis if (typeName.StartsWith("dmrmc4kscalercdsp"))
else return new DmRmc4kScalerCDspController(key, name, new DmRmc4kScalerCDsp(ipid, Global.ControlSystem));
{ if (typeName.StartsWith("dmrmc4kzscalerc"))
var parentDev = DeviceManager.GetDeviceForKey(pKey); return new DmRmc4kZScalerCController(key, name, new DmRmc4kzScalerC(ipid, Global.ControlSystem));
if (!(parentDev is IDmSwitch)) }
{ catch (Exception e)
Debug.Console(0, "Cannot create DM device '{0}'. '{1}' is not a DM Chassis.", {
key, pKey); Debug.Console(0, "[{0}] WARNING: Cannot create DM-RMC device: {1}", key, e.Message);
return null; }
}
var chassis = (parentDev as IDmSwitch).Chassis; Debug.Console(0, "Cannot create DM-RMC of type: '{0}'", typeName);
var num = props.ParentOutputNumber; }
if (num <= 0 || num > chassis.NumberOfOutputs) // Endpoints attached to DM Chassis
{ else
Debug.Console(0, "Cannot create DM device '{0}'. Output number '{1}' is out of range", {
key, num); var parentDev = DeviceManager.GetDeviceForKey(pKey);
return null; if (!(parentDev is IDmSwitch))
} {
else Debug.Console(0, "Cannot create DM device '{0}'. '{1}' is not a DM Chassis.",
{ key, pKey);
var controller = (parentDev as IDmSwitch); return null;
controller.RxDictionary.Add(num, key); }
}
// Catch constructor failures, mainly dues to IPID var chassis = (parentDev as IDmSwitch).Chassis;
try var num = props.ParentOutputNumber;
{ if (num <= 0 || num > chassis.NumberOfOutputs)
{
// Must use different constructor for CPU3 chassis types. No IPID Debug.Console(0, "Cannot create DM device '{0}'. Output number '{1}' is out of range",
if (chassis is DmMd8x8Cpu3 || chassis is DmMd16x16Cpu3 || key, num);
chassis is DmMd32x32Cpu3 || chassis is DmMd8x8Cpu3rps || return null;
chassis is DmMd16x16Cpu3rps || chassis is DmMd32x32Cpu3rps || }
chassis is DmMd128x128 || chassis is DmMd64x64) else
{ {
if (typeName.StartsWith("hdbasetrx")) var controller = (parentDev as IDmSwitch);
return new HDBaseTRxController(key, name, new HDRx3CB(chassis.Outputs[num])); controller.RxDictionary.Add(num, key);
if (typeName.StartsWith("dmrmc4k100c1g")) }
return new DmRmc4k100C1GController(key, name, new DmRmc4K100C1G(chassis.Outputs[num])); // Catch constructor failures, mainly dues to IPID
if (typeName.StartsWith("dmrmc100c")) try
return new DmRmcX100CController(key, name, new DmRmc100C(chassis.Outputs[num])); {
if (typeName.StartsWith("dmrmc100s"))
return new DmRmc100SController(key, name, new DmRmc100S(chassis.Outputs[num])); // Must use different constructor for CPU3 chassis types. No IPID
if (typeName.StartsWith("dmrmc4k100c")) if (chassis is DmMd8x8Cpu3 || chassis is DmMd16x16Cpu3 ||
return new DmRmcX100CController(key, name, new DmRmc4k100C(chassis.Outputs[num])); chassis is DmMd32x32Cpu3 || chassis is DmMd8x8Cpu3rps ||
if (typeName.StartsWith("dmrmc4kz100c")) chassis is DmMd16x16Cpu3rps || chassis is DmMd32x32Cpu3rps ||
return new DmRmc4kZ100CController(key, name, new DmRmc4kz100C(chassis.Outputs[num])); chassis is DmMd128x128 || chassis is DmMd64x64)
if (typeName.StartsWith("dmrmc150s")) {
return new DmRmc150SController(key, name, new DmRmc150S(chassis.Outputs[num])); if (typeName.StartsWith("hdbasetrx"))
if (typeName.StartsWith("dmrmc200c")) return new HDBaseTRxController(key, name, new HDRx3CB(chassis.Outputs[num]));
return new DmRmc200CController(key, name, new DmRmc200C(chassis.Outputs[num])); if (typeName.StartsWith("dmrmc4k100c1g"))
if (typeName.StartsWith("dmrmc200s")) return new DmRmc4k100C1GController(key, name, new DmRmc4K100C1G(chassis.Outputs[num]));
return new DmRmc200SController(key, name, new DmRmc200S(chassis.Outputs[num])); if (typeName.StartsWith("dmrmc100c"))
if (typeName.StartsWith("dmrmc200s2")) return new DmRmcX100CController(key, name, new DmRmc100C(chassis.Outputs[num]));
return new DmRmc200S2Controller(key, name, new DmRmc200S2(chassis.Outputs[num])); if (typeName.StartsWith("dmrmc100s"))
if (typeName.StartsWith("dmrmcscalerc")) return new DmRmc100SController(key, name, new DmRmc100S(chassis.Outputs[num]));
return new DmRmcScalerCController(key, name, new DmRmcScalerC(chassis.Outputs[num])); if (typeName.StartsWith("dmrmc4k100c"))
if (typeName.StartsWith("dmrmcscalers")) return new DmRmcX100CController(key, name, new DmRmc4k100C(chassis.Outputs[num]));
return new DmRmcScalerSController(key, name, new DmRmcScalerS(chassis.Outputs[num])); if (typeName.StartsWith("dmrmc4kz100c"))
if (typeName.StartsWith("dmrmcscalers2")) return new DmRmc4kZ100CController(key, name, new DmRmc4kz100C(chassis.Outputs[num]));
return new DmRmcScalerS2Controller(key, name, new DmRmcScalerS2(chassis.Outputs[num])); if (typeName.StartsWith("dmrmc150s"))
if (typeName.StartsWith("dmrmc4kscalerc")) return new DmRmc150SController(key, name, new DmRmc150S(chassis.Outputs[num]));
return new DmRmc4kScalerCController(key, name, new DmRmc4kScalerC(chassis.Outputs[num])); if (typeName.StartsWith("dmrmc200c"))
if (typeName.StartsWith("dmrmc4kscalercdsp")) return new DmRmc200CController(key, name, new DmRmc200C(chassis.Outputs[num]));
return new DmRmc4kScalerCDspController(key, name, new DmRmc4kScalerCDsp(chassis.Outputs[num])); if (typeName.StartsWith("dmrmc200s"))
} return new DmRmc200SController(key, name, new DmRmc200S(chassis.Outputs[num]));
else if (typeName.StartsWith("dmrmc200s2"))
{ return new DmRmc200S2Controller(key, name, new DmRmc200S2(chassis.Outputs[num]));
if (typeName.StartsWith("hdbasetrx")) if (typeName.StartsWith("dmrmcscalerc"))
return new HDBaseTRxController(key, name, new HDRx3CB(ipid, chassis.Outputs[num])); return new DmRmcScalerCController(key, name, new DmRmcScalerC(chassis.Outputs[num]));
if (typeName.StartsWith("dmrmc4k100c1g")) if (typeName.StartsWith("dmrmcscalers"))
return new DmRmc4k100C1GController(key, name, new DmRmc4K100C1G(ipid, chassis.Outputs[num])); return new DmRmcScalerSController(key, name, new DmRmcScalerS(chassis.Outputs[num]));
if (typeName.StartsWith("dmrmc100c")) if (typeName.StartsWith("dmrmcscalers2"))
return new DmRmcX100CController(key, name, new DmRmc100C(ipid, chassis.Outputs[num])); return new DmRmcScalerS2Controller(key, name, new DmRmcScalerS2(chassis.Outputs[num]));
if (typeName.StartsWith("dmrmc100s")) if (typeName.StartsWith("dmrmc4kscalerc"))
return new DmRmc100SController(key, name, new DmRmc100S(ipid, chassis.Outputs[num])); return new DmRmc4kScalerCController(key, name, new DmRmc4kScalerC(chassis.Outputs[num]));
if (typeName.StartsWith("dmrmc4k100c")) if (typeName.StartsWith("dmrmc4kscalercdsp"))
return new DmRmcX100CController(key, name, new DmRmc4k100C(ipid, chassis.Outputs[num])); return new DmRmc4kScalerCDspController(key, name, new DmRmc4kScalerCDsp(chassis.Outputs[num]));
if (typeName.StartsWith("dmrmc4kz100c")) if (typeName.StartsWith("dmrmc4kzscalerc"))
return new DmRmc4kZ100CController(key, name, new DmRmc4kz100C(ipid, chassis.Outputs[num])); return new DmRmc4kZScalerCController(key, name, new DmRmc4kzScalerC(chassis.Outputs[num]));
if (typeName.StartsWith("dmrmc150s")) }
return new DmRmc150SController(key, name, new DmRmc150S(ipid, chassis.Outputs[num])); else
if (typeName.StartsWith("dmrmc200c")) {
return new DmRmc200CController(key, name, new DmRmc200C(ipid, chassis.Outputs[num])); if (typeName.StartsWith("hdbasetrx"))
if (typeName.StartsWith("dmrmc200s")) return new HDBaseTRxController(key, name, new HDRx3CB(ipid, chassis.Outputs[num]));
return new DmRmc200SController(key, name, new DmRmc200S(ipid, chassis.Outputs[num])); if (typeName.StartsWith("dmrmc4k100c1g"))
if (typeName.StartsWith("dmrmc200s2")) return new DmRmc4k100C1GController(key, name, new DmRmc4K100C1G(ipid, chassis.Outputs[num]));
return new DmRmc200S2Controller(key, name, new DmRmc200S2(ipid, chassis.Outputs[num])); if (typeName.StartsWith("dmrmc100c"))
if (typeName.StartsWith("dmrmcscalerc")) return new DmRmcX100CController(key, name, new DmRmc100C(ipid, chassis.Outputs[num]));
return new DmRmcScalerCController(key, name, new DmRmcScalerC(ipid, chassis.Outputs[num])); if (typeName.StartsWith("dmrmc100s"))
if (typeName.StartsWith("dmrmcscalers")) return new DmRmc100SController(key, name, new DmRmc100S(ipid, chassis.Outputs[num]));
return new DmRmcScalerSController(key, name, new DmRmcScalerS(ipid, chassis.Outputs[num])); if (typeName.StartsWith("dmrmc4k100c"))
if (typeName.StartsWith("dmrmcscalers2")) return new DmRmcX100CController(key, name, new DmRmc4k100C(ipid, chassis.Outputs[num]));
return new DmRmcScalerS2Controller(key, name, new DmRmcScalerS2(ipid, chassis.Outputs[num])); if (typeName.StartsWith("dmrmc4kz100c"))
if (typeName.StartsWith("dmrmc4kscalerc")) return new DmRmc4kZ100CController(key, name, new DmRmc4kz100C(ipid, chassis.Outputs[num]));
return new DmRmc4kScalerCController(key, name, new DmRmc4kScalerC(ipid, chassis.Outputs[num])); if (typeName.StartsWith("dmrmc150s"))
if (typeName.StartsWith("dmrmc4kscalercdsp")) return new DmRmc150SController(key, name, new DmRmc150S(ipid, chassis.Outputs[num]));
return new DmRmc4kScalerCDspController(key, name, new DmRmc4kScalerCDsp(ipid, chassis.Outputs[num])); if (typeName.StartsWith("dmrmc200c"))
} return new DmRmc200CController(key, name, new DmRmc200C(ipid, chassis.Outputs[num]));
} if (typeName.StartsWith("dmrmc200s"))
catch (Exception e) return new DmRmc200SController(key, name, new DmRmc200S(ipid, chassis.Outputs[num]));
{ if (typeName.StartsWith("dmrmc200s2"))
Debug.Console(0, "[{0}] WARNING: Cannot create DM-RMC device: {1}", key, e.Message); return new DmRmc200S2Controller(key, name, new DmRmc200S2(ipid, chassis.Outputs[num]));
} if (typeName.StartsWith("dmrmcscalerc"))
} return new DmRmcScalerCController(key, name, new DmRmcScalerC(ipid, chassis.Outputs[num]));
if (typeName.StartsWith("dmrmcscalers"))
return null; return new DmRmcScalerSController(key, name, new DmRmcScalerS(ipid, chassis.Outputs[num]));
} if (typeName.StartsWith("dmrmcscalers2"))
} return new DmRmcScalerS2Controller(key, name, new DmRmcScalerS2(ipid, chassis.Outputs[num]));
if (typeName.StartsWith("dmrmc4kscalerc"))
public class DmRmcControllerFactory : EssentialsDeviceFactory<DmRmcControllerBase> return new DmRmc4kScalerCController(key, name, new DmRmc4kScalerC(ipid, chassis.Outputs[num]));
{ if (typeName.StartsWith("dmrmc4kscalercdsp"))
public DmRmcControllerFactory() return new DmRmc4kScalerCDspController(key, name, new DmRmc4kScalerCDsp(ipid, chassis.Outputs[num]));
{ if (typeName.StartsWith("dmrmc4kzscalerc"))
TypeNames = new List<string>() { "hdbasetrx", "dmrmc4k100c1g", "dmrmc100c", "dmrmc100s", "dmrmc4k100c", "dmrmc150s", return new DmRmc4kZScalerCController(key, name, new DmRmc4kzScalerC(chassis.Outputs[num]));
"dmrmc200c", "dmrmc200s", "dmrmc200s2", "dmrmcscalerc", "dmrmcscalers", "dmrmcscalers2", "dmrmc4kscalerc", "dmrmc4kscalercdsp",
"dmrmc4kz100c" }; }
} }
catch (Exception e)
public override EssentialsDevice BuildDevice(DeviceConfig dc) {
{ Debug.Console(0, "[{0}] WARNING: Cannot create DM-RMC device: {1}", key, e.Message);
var type = dc.Type.ToLower(); }
}
Debug.Console(1, "Factory Attempting to create new DM-RMC Device");
return null;
var props = JsonConvert.DeserializeObject }
<PepperDash.Essentials.DM.Config.DmRmcPropertiesConfig>(dc.Properties.ToString()); }
return PepperDash.Essentials.DM.DmRmcHelper.GetDmRmcController(dc.Key, dc.Name, type, props);
public class DmRmcControllerFactory : EssentialsDeviceFactory<DmRmcControllerBase>
} {
} public DmRmcControllerFactory()
{
TypeNames = new List<string>() { "hdbasetrx", "dmrmc4k100c1g", "dmrmc100c", "dmrmc100s", "dmrmc4k100c", "dmrmc150s",
"dmrmc200c", "dmrmc200s", "dmrmc200s2", "dmrmcscalerc", "dmrmcscalers", "dmrmcscalers2", "dmrmc4kscalerc", "dmrmc4kscalercdsp",
"dmrmc4kz100c", "dmrmckzscalerc" };
}
public override EssentialsDevice BuildDevice(DeviceConfig dc)
{
var type = dc.Type.ToLower();
Debug.Console(1, "Factory Attempting to create new DM-RMC Device");
var props = JsonConvert.DeserializeObject
<PepperDash.Essentials.DM.Config.DmRmcPropertiesConfig>(dc.Properties.ToString());
return PepperDash.Essentials.DM.DmRmcHelper.GetDmRmcController(dc.Key, dc.Name, type, props);
}
}
} }

View File

@@ -1,160 +1,161 @@
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion> <ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion> <SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{9199CE8A-0C9F-4952-8672-3EED798B284F}</ProjectGuid> <ProjectGuid>{9199CE8A-0C9F-4952-8672-3EED798B284F}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>PepperDash_Essentials_DM</RootNamespace> <RootNamespace>PepperDash_Essentials_DM</RootNamespace>
<AssemblyName>PepperDash_Essentials_DM</AssemblyName> <AssemblyName>PepperDash_Essentials_DM</AssemblyName>
<ProjectTypeGuids>{0B4745B0-194B-4BB6-8E21-E9057CA92300};{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <ProjectTypeGuids>{0B4745B0-194B-4BB6-8E21-E9057CA92300};{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<PlatformFamilyName>WindowsCE</PlatformFamilyName> <PlatformFamilyName>WindowsCE</PlatformFamilyName>
<PlatformID>E2BECB1F-8C8C-41ba-B736-9BE7D946A398</PlatformID> <PlatformID>E2BECB1F-8C8C-41ba-B736-9BE7D946A398</PlatformID>
<OSVersion>5.0</OSVersion> <OSVersion>5.0</OSVersion>
<DeployDirSuffix>SmartDeviceProject1</DeployDirSuffix> <DeployDirSuffix>SmartDeviceProject1</DeployDirSuffix>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<NativePlatformName>Windows CE</NativePlatformName> <NativePlatformName>Windows CE</NativePlatformName>
<FormFactorID> <FormFactorID>
</FormFactorID> </FormFactorID>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions> <AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions>
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>bin\</OutputPath> <OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE;</DefineConstants> <DefineConstants>DEBUG;TRACE;</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<NoStdLib>true</NoStdLib> <NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig> <NoConfig>true</NoConfig>
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies> <GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions> <AllowedReferenceRelatedFileExtensions>.allowedReferenceRelatedFileExtensions</AllowedReferenceRelatedFileExtensions>
<DebugType>none</DebugType> <DebugType>none</DebugType>
<Optimize>true</Optimize> <Optimize>true</Optimize>
<OutputPath>bin\</OutputPath> <OutputPath>bin\</OutputPath>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<NoStdLib>true</NoStdLib> <NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig> <NoConfig>true</NoConfig>
<GenerateSerializationAssemblies>off</GenerateSerializationAssemblies> <GenerateSerializationAssemblies>off</GenerateSerializationAssemblies>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Crestron.SimplSharpPro.DeviceSupport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="Crestron.SimplSharpPro.DeviceSupport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DeviceSupport.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DeviceSupport.dll</HintPath>
</Reference> </Reference>
<Reference Include="Crestron.SimplSharpPro.DM, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="Crestron.SimplSharpPro.DM, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DM.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DM.dll</HintPath>
</Reference> </Reference>
<Reference Include="Crestron.SimplSharpPro.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="Crestron.SimplSharpPro.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
</Reference> </Reference>
<Reference Include="mscorlib" /> <Reference Include="mscorlib" />
<Reference Include="PepperDash_Core, Version=1.0.26.30384, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="PepperDash_Core, Version=1.0.26.30384, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\pepperdashcore-builds\PepperDash_Core.dll</HintPath> <HintPath>..\..\pepperdashcore-builds\PepperDash_Core.dll</HintPath>
</Reference> </Reference>
<Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="SimplSharpHelperInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpHelperInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="SimplSharpNewtonsoft, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpNewtonsoft, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpNewtonsoft.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpNewtonsoft.dll</HintPath>
</Reference> </Reference>
<Reference Include="SimplSharpPro, Version=1.5.3.17, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpPro, Version=1.5.3.17, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpPro.exe</HintPath> <HintPath>..\..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpPro.exe</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="SimplSharpReflectionInterface, Version=1.0.5583.25238, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL"> <Reference Include="SimplSharpReflectionInterface, Version=1.0.5583.25238, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpReflectionInterface.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpReflectionInterface.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AirMedia\AirMediaPropertiesConfig.cs" /> <Compile Include="AirMedia\AirMediaPropertiesConfig.cs" />
<Compile Include="AirMedia\AirMediaController.cs" /> <Compile Include="AirMedia\AirMediaController.cs" />
<Compile Include="Chassis\DmBladeChassisController.cs" /> <Compile Include="Chassis\DmBladeChassisController.cs" />
<Compile Include="Chassis\DmCardAudioOutput.cs" /> <Compile Include="Chassis\DmCardAudioOutput.cs" />
<Compile Include="Chassis\DmChassisController.cs" /> <Compile Include="Chassis\DmChassisController.cs" />
<Compile Include="Chassis\DmpsAudioOutputController.cs" /> <Compile Include="Chassis\DmpsAudioOutputController.cs" />
<Compile Include="Chassis\DmpsInternalVirtualDmTxController.cs" /> <Compile Include="Chassis\DmpsInternalVirtualDmTxController.cs" />
<Compile Include="Chassis\DmpsRoutingController.cs" /> <Compile Include="Chassis\DmpsRoutingController.cs" />
<Compile Include="Chassis\HdMdNxM4kEController.cs" /> <Compile Include="Chassis\HdMdNxM4kEController.cs" />
<Compile Include="Endpoints\Receivers\DmRmc4kZ100CController.cs" /> <Compile Include="Endpoints\Receivers\DmRmc4kZ100CController.cs" />
<Compile Include="Endpoints\Transmitters\TxInterfaces.cs" /> <Compile Include="Endpoints\Receivers\DmRmc4kZScalerCController.cs" />
<Compile Include="IDmSwitch.cs" /> <Compile Include="Endpoints\Transmitters\TxInterfaces.cs" />
<Compile Include="Config\DmpsRoutingConfig.cs" /> <Compile Include="IDmSwitch.cs" />
<Compile Include="Config\DmRmcConfig.cs" /> <Compile Include="Config\DmpsRoutingConfig.cs" />
<Compile Include="Config\DmTxConfig.cs" /> <Compile Include="Config\DmRmcConfig.cs" />
<Compile Include="Config\DMChassisConfig.cs" /> <Compile Include="Config\DmTxConfig.cs" />
<Compile Include="Config\HdMdNxM4kEPropertiesConfig.cs" /> <Compile Include="Config\DMChassisConfig.cs" />
<Compile Include="Config\InputPropertiesConfig.cs" /> <Compile Include="Config\HdMdNxM4kEPropertiesConfig.cs" />
<Compile Include="DmPortName.cs" /> <Compile Include="Config\InputPropertiesConfig.cs" />
<Compile Include="Endpoints\DGEs\DgeController.cs" /> <Compile Include="DmPortName.cs" />
<Compile Include="Endpoints\DGEs\DgePropertiesConfig.cs" /> <Compile Include="Endpoints\DGEs\DgeController.cs" />
<Compile Include="DmLite\HdMdxxxCEController.cs" /> <Compile Include="Endpoints\DGEs\DgePropertiesConfig.cs" />
<Compile Include="Endpoints\Receivers\DmHdBaseTEndpointController.cs" /> <Compile Include="DmLite\HdMdxxxCEController.cs" />
<Compile Include="Endpoints\Receivers\DmRmc100SController.cs" /> <Compile Include="Endpoints\Receivers\DmHdBaseTEndpointController.cs" />
<Compile Include="Endpoints\Receivers\DmRmc150SController.cs" /> <Compile Include="Endpoints\Receivers\DmRmc100SController.cs" />
<Compile Include="Endpoints\Receivers\DmRmc200CController.cs" /> <Compile Include="Endpoints\Receivers\DmRmc150SController.cs" />
<Compile Include="Endpoints\Receivers\DmRmc200S2Controller.cs" /> <Compile Include="Endpoints\Receivers\DmRmc200CController.cs" />
<Compile Include="Endpoints\Receivers\DmRmc200SController.cs" /> <Compile Include="Endpoints\Receivers\DmRmc200S2Controller.cs" />
<Compile Include="Endpoints\Receivers\DmRmc4k100C1GController.cs" /> <Compile Include="Endpoints\Receivers\DmRmc200SController.cs" />
<Compile Include="Endpoints\Receivers\DmRmc4KScalerCController.cs" /> <Compile Include="Endpoints\Receivers\DmRmc4k100C1GController.cs" />
<Compile Include="Endpoints\Receivers\DmRmc4kScalerCDspController.cs" /> <Compile Include="Endpoints\Receivers\DmRmc4KScalerCController.cs" />
<Compile Include="Endpoints\Receivers\DmRmcScalerCController.cs" /> <Compile Include="Endpoints\Receivers\DmRmc4kScalerCDspController.cs" />
<Compile Include="Endpoints\Receivers\DmRmcX100CController.cs" /> <Compile Include="Endpoints\Receivers\DmRmcScalerCController.cs" />
<Compile Include="Endpoints\Receivers\DmRmcHelper.cs" /> <Compile Include="Endpoints\Receivers\DmRmcX100CController.cs" />
<Compile Include="Endpoints\Receivers\DmRmcScalerS2Controller.cs" /> <Compile Include="Endpoints\Receivers\DmRmcHelper.cs" />
<Compile Include="Endpoints\Receivers\DmRmcScalerSController.cs" /> <Compile Include="Endpoints\Receivers\DmRmcScalerS2Controller.cs" />
<Compile Include="Endpoints\Transmitters\DmTx200Controller.cs" /> <Compile Include="Endpoints\Receivers\DmRmcScalerSController.cs" />
<Compile Include="Endpoints\Transmitters\DmTx401CController.cs" /> <Compile Include="Endpoints\Transmitters\DmTx200Controller.cs" />
<Compile Include="Endpoints\Transmitters\DmTx4k100Controller.cs" /> <Compile Include="Endpoints\Transmitters\DmTx401CController.cs" />
<Compile Include="Endpoints\Transmitters\DmTx4k202CController.cs" /> <Compile Include="Endpoints\Transmitters\DmTx4k100Controller.cs" />
<Compile Include="Endpoints\Transmitters\DmTx4k302CController.cs" /> <Compile Include="Endpoints\Transmitters\DmTx4k202CController.cs" />
<Compile Include="Endpoints\Transmitters\DmTx201CController.cs" /> <Compile Include="Endpoints\Transmitters\DmTx4k302CController.cs" />
<Compile Include="Endpoints\Transmitters\DmTx4kz302CController.cs" /> <Compile Include="Endpoints\Transmitters\DmTx201CController.cs" />
<Compile Include="Endpoints\Transmitters\DmTxHelpers.cs" /> <Compile Include="Endpoints\Transmitters\DmTx4kz302CController.cs" />
<Compile Include="Extensions.cs" /> <Compile Include="Endpoints\Transmitters\DmTxHelpers.cs" />
<Compile Include="Config\DeviceFactory.cs" /> <Compile Include="Extensions.cs" />
<Compile Include="IDmHdmiInputExtensions.cs" /> <Compile Include="Config\DeviceFactory.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="IDmHdmiInputExtensions.cs" />
<Compile Include="VideoStatusHelpers.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<None Include="app.config" /> <Compile Include="VideoStatusHelpers.cs" />
<None Include="Properties\ControlSystem.cfg" /> <None Include="app.config" />
</ItemGroup> <None Include="Properties\ControlSystem.cfg" />
<ItemGroup> </ItemGroup>
<ProjectReference Include="..\..\Essentials Core\PepperDashEssentialsBase\PepperDash_Essentials_Core.csproj"> <ItemGroup>
<Project>{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}</Project> <ProjectReference Include="..\..\Essentials Core\PepperDashEssentialsBase\PepperDash_Essentials_Core.csproj">
<Name>PepperDash_Essentials_Core</Name> <Project>{A49AD6C8-FC0A-4CC0-9089-DFB4CF92D2B5}</Project>
</ProjectReference> <Name>PepperDash_Essentials_Core</Name>
</ItemGroup> </ProjectReference>
<Import Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" /> </ItemGroup>
<ProjectExtensions> <Import Project="$(MSBuildBinPath)\Microsoft.CompactFramework.CSharp.targets" />
<VisualStudio> <ProjectExtensions>
</VisualStudio> <VisualStudio>
</ProjectExtensions> </VisualStudio>
<PropertyGroup> </ProjectExtensions>
<PostBuildEvent>rem S# Pro preparation will execute after these operations</PostBuildEvent> <PropertyGroup>
</PropertyGroup> <PostBuildEvent>rem S# Pro preparation will execute after these operations</PostBuildEvent>
</PropertyGroup>
</Project> </Project>