diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmTxControllerJoinMap.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmTxControllerJoinMap.cs
index b01da694..4818ef80 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmTxControllerJoinMap.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmTxControllerJoinMap.cs
@@ -17,6 +17,18 @@ namespace PepperDash.Essentials.Core.Bridges
///
///
public uint FreeRunEnabled { get; set; }
+ ///
+ /// High when video sync is detected on input 1 of a multi-input tx
+ ///
+ public uint Input1VideoSyncStatus { get; set; }
+ ///
+ /// High when video sync is detected on input 2 of a multi-input tx
+ ///
+ public uint Input2VideoSyncStatus { get; set; }
+ ///
+ /// High when video sync is detected on input 3 of a multi-input tx
+ ///
+ public uint Input3VideoSyncStatus { get; set; }
#endregion
#region Analogs
@@ -66,6 +78,9 @@ namespace PepperDash.Essentials.Core.Bridges
IsOnline = 1;
VideoSyncStatus = 2;
FreeRunEnabled = 3;
+ Input1VideoSyncStatus = 4;
+ Input2VideoSyncStatus = 5;
+ Input3VideoSyncStatus = 6;
// Serial
CurrentInputResolution = 1;
// Analog
@@ -85,6 +100,9 @@ namespace PepperDash.Essentials.Core.Bridges
IsOnline = IsOnline + joinOffset;
VideoSyncStatus = VideoSyncStatus + joinOffset;
FreeRunEnabled = FreeRunEnabled + joinOffset;
+ Input1VideoSyncStatus = Input1VideoSyncStatus + joinOffset;
+ Input2VideoSyncStatus = Input2VideoSyncStatus + joinOffset;
+ Input3VideoSyncStatus = Input3VideoSyncStatus + joinOffset;
CurrentInputResolution = CurrentInputResolution + joinOffset;
VideoInput = VideoInput + joinOffset;
AudioInput = AudioInput + joinOffset;
diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx200Controller.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx200Controller.cs
index 923a7600..7a48e68e 100644
--- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx200Controller.cs
+++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx200Controller.cs
@@ -33,6 +33,8 @@ namespace PepperDash.Essentials.DM
public IntFeedback VideoSourceNumericFeedback { get; protected set; }
public IntFeedback AudioSourceNumericFeedback { get; protected set; }
public IntFeedback HdmiInHdcpCapabilityFeedback { get; protected set; }
+ public BoolFeedback In1VideoSyncFeedback { get; protected set; }
+ public BoolFeedback In2VideoSyncFeedback { get; protected set; }
public BoolFeedback FreeRunEnabledFeedback { get; protected set; }
@@ -127,6 +129,16 @@ namespace PepperDash.Essentials.DM
HdcpSupportCapability = eHdcpCapabilityType.HdcpAutoSupport;
+ In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () =>
+ {
+ return (bool)tx.HdmiInput.SyncDetectedFeedback.BoolValue;
+ });
+
+ In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () =>
+ {
+ return (bool)tx.VgaInput.SyncDetectedFeedback.BoolValue;
+ });
+
FreeRunEnabledFeedback = new BoolFeedback(() => tx.VgaInput.FreeRunFeedback == eDmFreeRunSetting.Enabled);
VgaBrightnessFeedback = new IntFeedback(() => tx.VgaInput.VideoControls.BrightnessFeedback.UShortValue);
@@ -174,7 +186,8 @@ namespace PepperDash.Essentials.DM
AddToFeedbackList(ActiveVideoInputFeedback, VideoSourceNumericFeedback, AudioSourceNumericFeedback,
AnyVideoInput.VideoStatus.HasVideoStatusFeedback, AnyVideoInput.VideoStatus.HdcpActiveFeedback,
AnyVideoInput.VideoStatus.HdcpStateFeedback, AnyVideoInput.VideoStatus.VideoResolutionFeedback,
- AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiInHdcpCapabilityFeedback);
+ AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiInHdcpCapabilityFeedback, In1VideoSyncFeedback,
+ In2VideoSyncFeedback);
// Set Ports for CEC
HdmiInput.Port = Tx.HdmiInput;
diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx201CController.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx201CController.cs
index e68a6fc5..5ea68369 100644
--- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx201CController.cs
+++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx201CController.cs
@@ -34,6 +34,8 @@ namespace PepperDash.Essentials.DM
public IntFeedback VideoSourceNumericFeedback { get; protected set; }
public IntFeedback AudioSourceNumericFeedback { get; protected set; }
public IntFeedback HdmiInHdcpCapabilityFeedback { get; protected set; }
+ public BoolFeedback In1VideoSyncFeedback { get; protected set; }
+ public BoolFeedback In2VideoSyncFeedback { get; protected set; }
public BoolFeedback FreeRunEnabledFeedback { get; protected set; }
@@ -126,6 +128,16 @@ namespace PepperDash.Essentials.DM
return 0;
});
+ In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () =>
+ {
+ return (bool)tx.HdmiInput.SyncDetectedFeedback.BoolValue;
+ });
+
+ In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () =>
+ {
+ return (bool)tx.VgaInput.SyncDetectedFeedback.BoolValue;
+ });
+
FreeRunEnabledFeedback = new BoolFeedback(() => tx.VgaInput.FreeRunFeedback == eDmFreeRunSetting.Enabled);
VgaBrightnessFeedback = new IntFeedback(() => tx.VgaInput.VideoControls.BrightnessFeedback.UShortValue);
@@ -176,7 +188,8 @@ namespace PepperDash.Essentials.DM
AddToFeedbackList(ActiveVideoInputFeedback, VideoSourceNumericFeedback, AudioSourceNumericFeedback,
AnyVideoInput.VideoStatus.HasVideoStatusFeedback, AnyVideoInput.VideoStatus.HdcpActiveFeedback,
AnyVideoInput.VideoStatus.HdcpStateFeedback, AnyVideoInput.VideoStatus.VideoResolutionFeedback,
- AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiInHdcpCapabilityFeedback);
+ AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiInHdcpCapabilityFeedback, In1VideoSyncFeedback,
+ In2VideoSyncFeedback);
// Set Ports for CEC
HdmiInput.Port = Tx.HdmiInput;
diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx401CController.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx401CController.cs
index 25c16281..38e97eb8 100644
--- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx401CController.cs
+++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx401CController.cs
@@ -35,6 +35,9 @@ namespace PepperDash.Essentials.DM
public IntFeedback VideoSourceNumericFeedback { get; protected set; }
public IntFeedback AudioSourceNumericFeedback { get; protected set; }
public IntFeedback HdmiInHdcpCapabilityFeedback { get; protected set; }
+ public BoolFeedback In1VideoSyncFeedback { get; protected set; }
+ public BoolFeedback In2VideoSyncFeedback { get; protected set; }
+ public BoolFeedback In3VideoSyncFeedback { get; protected set; }
public BoolFeedback FreeRunEnabledFeedback { get; protected set; }
@@ -137,6 +140,21 @@ namespace PepperDash.Essentials.DM
HdcpSupportCapability = eHdcpCapabilityType.HdcpAutoSupport;
+ In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () =>
+ {
+ return (bool)tx.HdmiInput.SyncDetectedFeedback.BoolValue;
+ });
+
+ In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () =>
+ {
+ return (bool)tx.DisplayPortInput.SyncDetectedFeedback.BoolValue;
+ });
+
+ In3VideoSyncFeedback = new BoolFeedback("In3VideoSync", () =>
+ {
+ return (bool)tx.VgaInput.SyncDetectedFeedback.BoolValue;
+ });
+
FreeRunEnabledFeedback = new BoolFeedback(() => tx.VgaInput.FreeRunFeedback == eDmFreeRunSetting.Enabled);
VgaBrightnessFeedback = new IntFeedback(() => tx.VgaInput.VideoControls.BrightnessFeedback.UShortValue);
@@ -193,7 +211,8 @@ namespace PepperDash.Essentials.DM
AddToFeedbackList(ActiveVideoInputFeedback, VideoSourceNumericFeedback, AudioSourceNumericFeedback,
AnyVideoInput.VideoStatus.HasVideoStatusFeedback, AnyVideoInput.VideoStatus.HdcpActiveFeedback,
AnyVideoInput.VideoStatus.HdcpStateFeedback, AnyVideoInput.VideoStatus.VideoResolutionFeedback,
- AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiInHdcpCapabilityFeedback);
+ AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiInHdcpCapabilityFeedback, In1VideoSyncFeedback,
+ In2VideoSyncFeedback, In3VideoSyncFeedback);
// Set Ports for CEC
DisplayPortIn.Port = Tx.DisplayPortInput;
diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k202CController.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k202CController.cs
index 1b5ecf6d..4acc4085 100644
--- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k202CController.cs
+++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k202CController.cs
@@ -35,6 +35,8 @@ namespace PepperDash.Essentials.DM
public IntFeedback AudioSourceNumericFeedback { get; protected set; }
public IntFeedback HdmiIn1HdcpCapabilityFeedback { get; protected set; }
public IntFeedback HdmiIn2HdcpCapabilityFeedback { get; protected set; }
+ public BoolFeedback In1VideoSyncFeedback { get; protected set; }
+ public BoolFeedback In2VideoSyncFeedback { get; protected set; }
//public override IntFeedback HdcpSupportAllFeedback { get; protected set; }
//public override ushort HdcpSupportCapability { get; protected set; }
@@ -119,6 +121,16 @@ namespace PepperDash.Essentials.DM
HdcpSupportCapability = eHdcpCapabilityType.Hdcp2_2Support;
+ In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () =>
+ {
+ return (bool)tx.HdmiInputs[1].SyncDetectedFeedback.BoolValue;
+ });
+
+ In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () =>
+ {
+ return (bool)tx.HdmiInputs[2].SyncDetectedFeedback.BoolValue;
+ });
+
var combinedFuncs = new VideoStatusFuncsWrapper
{
HdcpActiveFeedbackFunc = () =>
@@ -164,7 +176,8 @@ namespace PepperDash.Essentials.DM
AddToFeedbackList(ActiveVideoInputFeedback, VideoSourceNumericFeedback, AudioSourceNumericFeedback,
AnyVideoInput.VideoStatus.HasVideoStatusFeedback, AnyVideoInput.VideoStatus.HdcpActiveFeedback,
AnyVideoInput.VideoStatus.HdcpStateFeedback, AnyVideoInput.VideoStatus.VideoResolutionFeedback,
- AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiIn1HdcpCapabilityFeedback, HdmiIn2HdcpCapabilityFeedback);
+ AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiIn1HdcpCapabilityFeedback, HdmiIn2HdcpCapabilityFeedback,
+ In1VideoSyncFeedback, In2VideoSyncFeedback);
// Set Ports for CEC
HdmiIn1.Port = Tx.HdmiInputs[1];
diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k302CController.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k302CController.cs
index 5d00a32d..42d47877 100644
--- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k302CController.cs
+++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k302CController.cs
@@ -36,6 +36,9 @@ namespace PepperDash.Essentials.DM
public IntFeedback AudioSourceNumericFeedback { get; protected set; }
public IntFeedback HdmiIn1HdcpCapabilityFeedback { get; protected set; }
public IntFeedback HdmiIn2HdcpCapabilityFeedback { get; protected set; }
+ public BoolFeedback In1VideoSyncFeedback { get; protected set; }
+ public BoolFeedback In2VideoSyncFeedback { get; protected set; }
+ public BoolFeedback In3VideoSyncFeedback { get; protected set; }
public BoolFeedback FreeRunEnabledFeedback { get; protected set; }
@@ -126,6 +129,21 @@ namespace PepperDash.Essentials.DM
HdcpSupportCapability = eHdcpCapabilityType.Hdcp2_2Support;
+ In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () =>
+ {
+ return (bool)tx.HdmiInputs[1].SyncDetectedFeedback.BoolValue;
+ });
+
+ In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () =>
+ {
+ return (bool)tx.HdmiInputs[2].SyncDetectedFeedback.BoolValue;
+ });
+
+ In3VideoSyncFeedback = new BoolFeedback("In3VideoSync", () =>
+ {
+ return (bool)tx.VgaInput.SyncDetectedFeedback.BoolValue;
+ });
+
FreeRunEnabledFeedback = new BoolFeedback(() => tx.VgaInput.FreeRunFeedback == eDmFreeRunSetting.Enabled);
VgaBrightnessFeedback = new IntFeedback(() => tx.VgaInput.VideoControls.BrightnessFeedback.UShortValue);
@@ -183,7 +201,8 @@ namespace PepperDash.Essentials.DM
AddToFeedbackList(ActiveVideoInputFeedback, VideoSourceNumericFeedback, AudioSourceNumericFeedback,
AnyVideoInput.VideoStatus.HasVideoStatusFeedback, AnyVideoInput.VideoStatus.HdcpActiveFeedback,
AnyVideoInput.VideoStatus.HdcpStateFeedback, AnyVideoInput.VideoStatus.VideoResolutionFeedback,
- AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiIn1HdcpCapabilityFeedback, HdmiIn2HdcpCapabilityFeedback);
+ AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiIn1HdcpCapabilityFeedback, HdmiIn2HdcpCapabilityFeedback,
+ In1VideoSyncFeedback, In2VideoSyncFeedback, In3VideoSyncFeedback);
// Set Ports for CEC
HdmiIn1.Port = Tx.HdmiInputs[1];
diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4kz302CController.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4kz302CController.cs
index 27340407..640ae40e 100644
--- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4kz302CController.cs
+++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4kz302CController.cs
@@ -36,6 +36,9 @@ namespace PepperDash.Essentials.DM
public IntFeedback AudioSourceNumericFeedback { get; protected set; }
public IntFeedback HdmiIn1HdcpCapabilityFeedback { get; protected set; }
public IntFeedback HdmiIn2HdcpCapabilityFeedback { get; protected set; }
+ public BoolFeedback In1VideoSyncFeedback { get; protected set; }
+ public BoolFeedback In2VideoSyncFeedback { get; protected set; }
+ public BoolFeedback In3VideoSyncFeedback { get; protected set; }
//public override IntFeedback HdcpSupportAllFeedback { get; protected set; }
//public override ushort HdcpSupportCapability { get; protected set; }
@@ -124,6 +127,21 @@ namespace PepperDash.Essentials.DM
HdcpSupportCapability = eHdcpCapabilityType.Hdcp2_2Support;
+ In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () =>
+ {
+ return (bool)tx.HdmiInputs[1].SyncDetectedFeedback.BoolValue;
+ });
+
+ In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () =>
+ {
+ return (bool)tx.HdmiInputs[2].SyncDetectedFeedback.BoolValue;
+ });
+
+ In3VideoSyncFeedback = new BoolFeedback("In3VideoSync", () =>
+ {
+ return (bool)tx.DisplayPortInput.SyncDetectedFeedback.BoolValue;
+ });
+
var combinedFuncs = new VideoStatusFuncsWrapper
{
@@ -174,7 +192,8 @@ namespace PepperDash.Essentials.DM
AddToFeedbackList(ActiveVideoInputFeedback, VideoSourceNumericFeedback, AudioSourceNumericFeedback,
AnyVideoInput.VideoStatus.HasVideoStatusFeedback, AnyVideoInput.VideoStatus.HdcpActiveFeedback,
AnyVideoInput.VideoStatus.HdcpStateFeedback, AnyVideoInput.VideoStatus.VideoResolutionFeedback,
- AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiIn1HdcpCapabilityFeedback, HdmiIn2HdcpCapabilityFeedback);
+ AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiIn1HdcpCapabilityFeedback, HdmiIn2HdcpCapabilityFeedback,
+ In1VideoSyncFeedback, In2VideoSyncFeedback, In3VideoSyncFeedback);
// Set Ports for CEC
HdmiIn1.Port = Tx.HdmiInputs[1];
diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs
index 81a56008..5895b6fe 100644
--- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs
+++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs
@@ -217,6 +217,25 @@ namespace PepperDash.Essentials.DM
trilist.UShortInput[joinMap.HdcpSupportCapability].UShortValue = (ushort)tx.HdcpSupportCapability;
+ if (tx.Feedbacks["In1VideoSyncFeedback"] != null)
+ {
+ var boolFeedback = tx.Feedbacks["In1VideoSyncFeedback"] as BoolFeedback;
+ if (boolFeedback != null)
+ boolFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]);
+ }
+ if (tx.Feedbacks["In2VideoSyncFeedback"] != null)
+ {
+ var boolFeedback = tx.Feedbacks["In1VideoSyncFeedback"] as BoolFeedback;
+ if (boolFeedback != null)
+ boolFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]);
+ }
+ if (tx.Feedbacks["In3VideoSyncFeedback"] != null)
+ {
+ var boolFeedback = tx.Feedbacks["In1VideoSyncFeedback"] as BoolFeedback;
+ if (boolFeedback != null)
+ boolFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input3VideoSyncStatus]);
+ }
+
if (txR.InputPorts[DmPortName.HdmiIn] != null)
{
var inputPort = txR.InputPorts[DmPortName.HdmiIn];
@@ -228,6 +247,13 @@ namespace PepperDash.Essentials.DM
intFeedback.LinkInputSig(trilist.UShortInput[joinMap.Port1HdcpState]);
}
+ if (tx.Feedbacks["HdmiInHdcpCapability"] != null)
+ {
+ var intFeedback = tx.Feedbacks["HdmiInHdcpCapability"] as IntFeedback;
+ if (intFeedback != null)
+ intFeedback.LinkInputSig(trilist.UShortInput[joinMap.Port1HdcpState]);
+ }
+
if (inputPort.ConnectionType == eRoutingPortConnectionType.Hdmi && inputPort.Port != null)
{
var port = inputPort.Port as EndpointHdmiInput;