Adds new feedback type to link Dm-Tx input video sync to generic "input1", "input2", "input3" video sync feedbacks for passing to SIMPL. Updates join map for DmTxController

This commit is contained in:
ajohnson_pd
2020-05-06 20:03:07 -04:00
parent 3f4cc0cb26
commit 8499338fac
8 changed files with 146 additions and 6 deletions

View File

@@ -17,6 +17,18 @@ namespace PepperDash.Essentials.Core.Bridges
///
/// </summary>
public uint FreeRunEnabled { get; set; }
/// <summary>
/// High when video sync is detected on input 1 of a multi-input tx
/// </summary>
public uint Input1VideoSyncStatus { get; set; }
/// <summary>
/// High when video sync is detected on input 2 of a multi-input tx
/// </summary>
public uint Input2VideoSyncStatus { get; set; }
/// <summary>
/// High when video sync is detected on input 3 of a multi-input tx
/// </summary>
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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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];

View File

@@ -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];

View File

@@ -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];

View File

@@ -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;