mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 20:54:55 +00:00
Updated DmRmcControllerJoinMap and DmRmcHelper
This commit is contained in:
@@ -1,75 +1,46 @@
|
|||||||
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 PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Core.Bridges
|
|
||||||
{
|
|
||||||
public class DmRmcControllerJoinMap : JoinMapBase
|
|
||||||
{
|
|
||||||
#region Digitals
|
|
||||||
/// <summary>
|
|
||||||
/// High when device is online (if not attached to a DMP3 or DM chassis with a CPU3 card
|
|
||||||
/// </summary>
|
|
||||||
public uint IsOnline { get; set; }
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Serials
|
|
||||||
/// <summary>
|
|
||||||
/// Reports the current output resolution
|
|
||||||
/// </summary>
|
|
||||||
public uint CurrentOutputResolution { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Reports the EDID manufacturer value
|
|
||||||
/// </summary>
|
|
||||||
public uint EdidManufacturer { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Reports the EDID Name value
|
|
||||||
/// </summary>
|
|
||||||
public uint EdidName { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Reports the EDID preffered timing value
|
|
||||||
/// </summary>
|
|
||||||
public uint EdidPrefferedTiming { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Reports the EDID serial number value
|
|
||||||
/// </summary>
|
|
||||||
public uint EdidSerialNumber { get; set; }
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Analogs
|
namespace PepperDash.Essentials.Core.Bridges
|
||||||
public uint AudioVideoSource { get; set; }
|
{
|
||||||
#endregion
|
public class DmRmcControllerJoinMap : JoinMapBaseAdvanced
|
||||||
|
{
|
||||||
|
[JoinName("IsOnline")]
|
||||||
|
public JoinDataComplete IsOnline = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
|
||||||
|
new JoinMetadata() { Label = "DM RMC Online", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
public DmRmcControllerJoinMap()
|
[JoinName("CurrentOutputResolution")]
|
||||||
|
public JoinDataComplete CurrentOutputResolution = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
|
||||||
|
new JoinMetadata() { Label = "DM RMC Current Output Resolution", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
|
[JoinName("EdidManufacturer")]
|
||||||
|
public JoinDataComplete EdidManufacturer = new JoinDataComplete(new JoinData() { JoinNumber = 2, JoinSpan = 1 },
|
||||||
|
new JoinMetadata() { Label = "DM RMC EDID Manufacturer", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
|
[JoinName("EdidName")]
|
||||||
|
public JoinDataComplete EdidName = new JoinDataComplete(new JoinData() { JoinNumber = 3, JoinSpan = 1 },
|
||||||
|
new JoinMetadata() { Label = "DM RMC EDID Name", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
|
[JoinName("EdidPrefferedTiming")]
|
||||||
|
public JoinDataComplete EdidPrefferedTiming = new JoinDataComplete(new JoinData() { JoinNumber = 4, JoinSpan = 1 },
|
||||||
|
new JoinMetadata() { Label = "DM RMC EDID Preferred Timing", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
|
[JoinName("EdidSerialNumber")]
|
||||||
|
public JoinDataComplete EdidSerialNumber = new JoinDataComplete(new JoinData() { JoinNumber = 5, JoinSpan = 1 },
|
||||||
|
new JoinMetadata() { Label = "DM RMC EDID Serial Number", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
|
[JoinName("AudioVideoSource")]
|
||||||
|
public JoinDataComplete AudioVideoSource = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
|
||||||
|
new JoinMetadata() { Label = "DM RMC Audio Video Source Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
|
|
||||||
|
public DmRmcControllerJoinMap(uint joinStart)
|
||||||
|
: base(joinStart, typeof(DmRmcControllerJoinMap))
|
||||||
{
|
{
|
||||||
// Digital
|
|
||||||
IsOnline = 1;
|
|
||||||
|
|
||||||
// Serial
|
|
||||||
CurrentOutputResolution = 1;
|
|
||||||
EdidManufacturer = 2;
|
|
||||||
EdidName = 3;
|
|
||||||
EdidPrefferedTiming = 4;
|
|
||||||
EdidSerialNumber = 5;
|
|
||||||
|
|
||||||
//Analog
|
|
||||||
AudioVideoSource = 1;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
public override void OffsetJoinNumbers(uint joinStart)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -38,29 +38,27 @@ namespace PepperDash.Essentials.DM
|
|||||||
}
|
}
|
||||||
|
|
||||||
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(joinStart);
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
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.JoinNumber]);
|
||||||
if (rmc.VideoOutputResolutionFeedback != null)
|
if (rmc.VideoOutputResolutionFeedback != null)
|
||||||
rmc.VideoOutputResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.CurrentOutputResolution]);
|
rmc.VideoOutputResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.CurrentOutputResolution.JoinNumber]);
|
||||||
if (rmc.EdidManufacturerFeedback != null)
|
if (rmc.EdidManufacturerFeedback != null)
|
||||||
rmc.EdidManufacturerFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidManufacturer]);
|
rmc.EdidManufacturerFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidManufacturer.JoinNumber]);
|
||||||
if (rmc.EdidNameFeedback != null)
|
if (rmc.EdidNameFeedback != null)
|
||||||
rmc.EdidNameFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidName]);
|
rmc.EdidNameFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidName.JoinNumber]);
|
||||||
if (rmc.EdidPreferredTimingFeedback != null)
|
if (rmc.EdidPreferredTimingFeedback != null)
|
||||||
rmc.EdidPreferredTimingFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidPrefferedTiming]);
|
rmc.EdidPreferredTimingFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidPrefferedTiming.JoinNumber]);
|
||||||
if (rmc.EdidSerialNumberFeedback != null)
|
if (rmc.EdidSerialNumberFeedback != null)
|
||||||
rmc.EdidSerialNumberFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidSerialNumber]);
|
rmc.EdidSerialNumberFeedback.LinkInputSig(trilist.StringInput[joinMap.EdidSerialNumber.JoinNumber]);
|
||||||
|
|
||||||
//If the device is an DM-RMC-4K-Z-SCALER-C
|
//If the device is an DM-RMC-4K-Z-SCALER-C
|
||||||
var routing = rmc as IRmcRouting;
|
var routing = rmc as IRmcRouting;
|
||||||
@@ -68,9 +66,9 @@ namespace PepperDash.Essentials.DM
|
|||||||
if (routing != null)
|
if (routing != null)
|
||||||
{
|
{
|
||||||
if (routing.AudioVideoSourceNumericFeedback != null)
|
if (routing.AudioVideoSourceNumericFeedback != null)
|
||||||
routing.AudioVideoSourceNumericFeedback.LinkInputSig(trilist.UShortInput[joinMap.AudioVideoSource]);
|
routing.AudioVideoSourceNumericFeedback.LinkInputSig(trilist.UShortInput[joinMap.AudioVideoSource.JoinNumber]);
|
||||||
|
|
||||||
trilist.SetUShortSigAction(joinMap.AudioVideoSource, (a) => routing.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo));
|
trilist.SetUShortSigAction(joinMap.AudioVideoSource.JoinNumber, (a) => routing.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user