From 8499338facf2f62caa143c90fdcd49157cd32ee2 Mon Sep 17 00:00:00 2001 From: ajohnson_pd Date: Wed, 6 May 2020 20:03:07 -0400 Subject: [PATCH 1/5] 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 --- .../Bridges/JoinMaps/DmTxControllerJoinMap.cs | 18 +++++++++++++ .../Transmitters/DmTx200Controller.cs | 15 ++++++++++- .../Transmitters/DmTx201CController.cs | 15 ++++++++++- .../Transmitters/DmTx401CController.cs | 21 ++++++++++++++- .../Transmitters/DmTx4k202CController.cs | 15 ++++++++++- .../Transmitters/DmTx4k302CController.cs | 21 ++++++++++++++- .../Transmitters/DmTx4kz302CController.cs | 21 ++++++++++++++- .../Endpoints/Transmitters/DmTxHelpers.cs | 26 +++++++++++++++++++ 8 files changed, 146 insertions(+), 6 deletions(-) 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; From 31536e7f9790fec6d5f7dfa6e689e18bb2832e4e Mon Sep 17 00:00:00 2001 From: Alex Johnson Date: Wed, 6 May 2020 21:28:38 -0400 Subject: [PATCH 2/5] Removes accidental duplication of code --- .../Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs | 7 ------- 1 file changed, 7 deletions(-) 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 5895b6fe..ee9a18e9 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs @@ -247,13 +247,6 @@ 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; From 8f440c3cb9beb21702bb05ba5de44018fed223f8 Mon Sep 17 00:00:00 2001 From: Alex Johnson Date: Thu, 7 May 2020 11:27:07 -0400 Subject: [PATCH 3/5] Fixes mapping for DM-TX-401 where displayport=1 and hdmi=2 --- .../Endpoints/Transmitters/DmTx401CController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 38e97eb8..c0c2b47e 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx401CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx401CController.cs @@ -142,12 +142,12 @@ namespace PepperDash.Essentials.DM In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () => { - return (bool)tx.HdmiInput.SyncDetectedFeedback.BoolValue; + return (bool)tx.DisplayPortInput.SyncDetectedFeedback.BoolValue; }); In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () => { - return (bool)tx.DisplayPortInput.SyncDetectedFeedback.BoolValue; + return (bool)tx.HdmiInput.SyncDetectedFeedback.BoolValue; }); In3VideoSyncFeedback = new BoolFeedback("In3VideoSync", () => From f91930930b1f8dfeeb7d763d01ea1369463cd5c1 Mon Sep 17 00:00:00 2001 From: Alex Johnson Date: Thu, 7 May 2020 13:23:20 -0400 Subject: [PATCH 4/5] Changes Dm-Tx video sync feedback to be specific to port type (hdmi, dp, vga). Moves linking to Api join map into the tx specific LinkToApi() --- .../Transmitters/DmTx200Controller.cs | 25 ++++++++++----- .../Transmitters/DmTx201CController.cs | 25 ++++++++++----- .../Transmitters/DmTx401CController.cs | 29 +++++++++++------ .../Transmitters/DmTx4k100Controller.cs | 4 ++- .../Transmitters/DmTx4k202CController.cs | 23 ++++++++++---- .../Transmitters/DmTx4k302CController.cs | 31 ++++++++++++++----- .../Transmitters/DmTx4kz302CController.cs | 31 ++++++++++++++----- .../Endpoints/Transmitters/DmTxHelpers.cs | 29 +++++------------ 8 files changed, 129 insertions(+), 68 deletions(-) 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 7a48e68e..13963fa4 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx200Controller.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx200Controller.cs @@ -33,8 +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 HdmiVideoSyncFeedback { get; protected set; } + public BoolFeedback VgaVideoSyncFeedback { get; protected set; } public BoolFeedback FreeRunEnabledFeedback { get; protected set; } @@ -129,12 +129,12 @@ namespace PepperDash.Essentials.DM HdcpSupportCapability = eHdcpCapabilityType.HdcpAutoSupport; - In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () => + HdmiVideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.HdmiInput.SyncDetectedFeedback.BoolValue; }); - In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () => + VgaVideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.VgaInput.SyncDetectedFeedback.BoolValue; }); @@ -186,8 +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, In1VideoSyncFeedback, - In2VideoSyncFeedback); + AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiInHdcpCapabilityFeedback, HdmiVideoSyncFeedback, + VgaVideoSyncFeedback); // Set Ports for CEC HdmiInput.Port = Tx.HdmiInput; @@ -233,7 +233,18 @@ namespace PepperDash.Essentials.DM public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { - LinkDmTxToApi(this, trilist, joinStart, joinMapKey, bridge); + DmTxControllerJoinMap joinMap = GetDmTxJoinMap(joinStart, joinMapKey); + + if (HdmiVideoSyncFeedback != null) + { + HdmiVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + } + if (VgaVideoSyncFeedback != null) + { + VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + } + + LinkDmTxToApi(this, trilist, joinMap, bridge); } /// 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 5ea68369..ceebb32a 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx201CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx201CController.cs @@ -34,8 +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 HdmiVideoSyncFeedback { get; protected set; } + public BoolFeedback VgaVideoSyncFeedback { get; protected set; } public BoolFeedback FreeRunEnabledFeedback { get; protected set; } @@ -128,12 +128,12 @@ namespace PepperDash.Essentials.DM return 0; }); - In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () => + HdmiVideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.HdmiInput.SyncDetectedFeedback.BoolValue; }); - In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () => + VgaVideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.VgaInput.SyncDetectedFeedback.BoolValue; }); @@ -188,8 +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, In1VideoSyncFeedback, - In2VideoSyncFeedback); + AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiInHdcpCapabilityFeedback, HdmiVideoSyncFeedback, + VgaVideoSyncFeedback); // Set Ports for CEC HdmiInput.Port = Tx.HdmiInput; @@ -235,7 +235,18 @@ namespace PepperDash.Essentials.DM public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { - LinkDmTxToApi(this, trilist, joinStart, joinMapKey, bridge); + DmTxControllerJoinMap joinMap = GetDmTxJoinMap(joinStart, joinMapKey); + + if (HdmiVideoSyncFeedback != null) + { + HdmiVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + } + if (VgaVideoSyncFeedback != null) + { + VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + } + + LinkDmTxToApi(this, trilist, joinMap, bridge); } /// 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 c0c2b47e..ac65e90e 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx401CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx401CController.cs @@ -35,9 +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 DisplayPortVideoSyncFeedback { get; protected set; } + public BoolFeedback HdmiVideoSyncFeedback { get; protected set; } + public BoolFeedback VgaVideoSyncFeedback { get; protected set; } public BoolFeedback FreeRunEnabledFeedback { get; protected set; } @@ -140,17 +140,17 @@ namespace PepperDash.Essentials.DM HdcpSupportCapability = eHdcpCapabilityType.HdcpAutoSupport; - In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () => + DisplayPortVideoSyncFeedback = new BoolFeedback("DisplayPortVideoSync", () => { return (bool)tx.DisplayPortInput.SyncDetectedFeedback.BoolValue; }); - In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () => + HdmiVideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.HdmiInput.SyncDetectedFeedback.BoolValue; }); - In3VideoSyncFeedback = new BoolFeedback("In3VideoSync", () => + VgaVideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.VgaInput.SyncDetectedFeedback.BoolValue; }); @@ -211,8 +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, In1VideoSyncFeedback, - In2VideoSyncFeedback, In3VideoSyncFeedback); + AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiInHdcpCapabilityFeedback, DisplayPortVideoSyncFeedback, + HdmiVideoSyncFeedback, VgaVideoSyncFeedback); // Set Ports for CEC DisplayPortIn.Port = Tx.DisplayPortInput; @@ -238,7 +238,18 @@ namespace PepperDash.Essentials.DM public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { - LinkDmTxToApi(this, trilist, joinStart, joinMapKey, bridge); + DmTxControllerJoinMap joinMap = GetDmTxJoinMap(joinStart, joinMapKey); + + if (HdmiVideoSyncFeedback != null) + { + HdmiVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + } + if (VgaVideoSyncFeedback != null) + { + VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + } + + LinkDmTxToApi(this, trilist, joinMap, bridge); } public void ExecuteNumericSwitch(ushort input, ushort output, eRoutingSignalType type) diff --git a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k100Controller.cs b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k100Controller.cs index c62d0adf..12889528 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k100Controller.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k100Controller.cs @@ -72,7 +72,9 @@ namespace PepperDash.Essentials.DM public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { - LinkDmTxToApi(this, trilist, joinStart, joinMapKey, bridge); + DmTxControllerJoinMap joinMap = GetDmTxJoinMap(joinStart, joinMapKey); + + LinkDmTxToApi(this, trilist, joinMap, bridge); } #region IIROutputPorts Members 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 4acc4085..2121d2bb 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k202CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k202CController.cs @@ -35,8 +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 BoolFeedback Hdmi1VideoSyncFeedback { get; protected set; } + public BoolFeedback Hdmi2VideoSyncFeedback { get; protected set; } //public override IntFeedback HdcpSupportAllFeedback { get; protected set; } //public override ushort HdcpSupportCapability { get; protected set; } @@ -121,12 +121,12 @@ namespace PepperDash.Essentials.DM HdcpSupportCapability = eHdcpCapabilityType.Hdcp2_2Support; - In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () => + Hdmi1VideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.HdmiInputs[1].SyncDetectedFeedback.BoolValue; }); - In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () => + Hdmi2VideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.HdmiInputs[2].SyncDetectedFeedback.BoolValue; }); @@ -177,7 +177,7 @@ namespace PepperDash.Essentials.DM AnyVideoInput.VideoStatus.HasVideoStatusFeedback, AnyVideoInput.VideoStatus.HdcpActiveFeedback, AnyVideoInput.VideoStatus.HdcpStateFeedback, AnyVideoInput.VideoStatus.VideoResolutionFeedback, AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiIn1HdcpCapabilityFeedback, HdmiIn2HdcpCapabilityFeedback, - In1VideoSyncFeedback, In2VideoSyncFeedback); + Hdmi1VideoSyncFeedback, Hdmi2VideoSyncFeedback); // Set Ports for CEC HdmiIn1.Port = Tx.HdmiInputs[1]; @@ -203,7 +203,18 @@ namespace PepperDash.Essentials.DM public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { - LinkDmTxToApi(this, trilist, joinStart, joinMapKey, bridge); + DmTxControllerJoinMap joinMap = GetDmTxJoinMap(joinStart, joinMapKey); + + if (Hdmi1VideoSyncFeedback != null) + { + Hdmi1VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + } + if (Hdmi2VideoSyncFeedback != null) + { + Hdmi2VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + } + + LinkDmTxToApi(this, trilist, joinMap, bridge); } public void ExecuteNumericSwitch(ushort input, ushort output, eRoutingSignalType type) 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 42d47877..58e8e301 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k302CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k302CController.cs @@ -36,9 +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 Hdmi1VideoSyncFeedback { get; protected set; } + public BoolFeedback Hdmi2VideoSyncFeedback { get; protected set; } + public BoolFeedback VgaVideoSyncFeedback { get; protected set; } public BoolFeedback FreeRunEnabledFeedback { get; protected set; } @@ -129,17 +129,17 @@ namespace PepperDash.Essentials.DM HdcpSupportCapability = eHdcpCapabilityType.Hdcp2_2Support; - In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () => + Hdmi1VideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.HdmiInputs[1].SyncDetectedFeedback.BoolValue; }); - In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () => + Hdmi2VideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.HdmiInputs[2].SyncDetectedFeedback.BoolValue; }); - In3VideoSyncFeedback = new BoolFeedback("In3VideoSync", () => + VgaVideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.VgaInput.SyncDetectedFeedback.BoolValue; }); @@ -202,7 +202,7 @@ namespace PepperDash.Essentials.DM AnyVideoInput.VideoStatus.HasVideoStatusFeedback, AnyVideoInput.VideoStatus.HdcpActiveFeedback, AnyVideoInput.VideoStatus.HdcpStateFeedback, AnyVideoInput.VideoStatus.VideoResolutionFeedback, AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiIn1HdcpCapabilityFeedback, HdmiIn2HdcpCapabilityFeedback, - In1VideoSyncFeedback, In2VideoSyncFeedback, In3VideoSyncFeedback); + Hdmi1VideoSyncFeedback, Hdmi2VideoSyncFeedback, VgaVideoSyncFeedback); // Set Ports for CEC HdmiIn1.Port = Tx.HdmiInputs[1]; @@ -246,7 +246,22 @@ namespace PepperDash.Essentials.DM public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { - LinkDmTxToApi(this, trilist, joinStart, joinMapKey, bridge); + DmTxControllerJoinMap joinMap = GetDmTxJoinMap(joinStart, joinMapKey); + + if (Hdmi1VideoSyncFeedback != null) + { + Hdmi1VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + } + if (Hdmi2VideoSyncFeedback != null) + { + Hdmi2VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + } + if (VgaVideoSyncFeedback != null) + { + VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input3VideoSyncStatus]); + } + + LinkDmTxToApi(this, trilist, joinMap, bridge); } /// 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 640ae40e..38810eed 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4kz302CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4kz302CController.cs @@ -36,9 +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 Hdmi1VideoSyncFeedback { get; protected set; } + public BoolFeedback Hdmi2VideoSyncFeedback { get; protected set; } + public BoolFeedback DisplayPortVideoSyncFeedback { get; protected set; } //public override IntFeedback HdcpSupportAllFeedback { get; protected set; } //public override ushort HdcpSupportCapability { get; protected set; } @@ -127,17 +127,17 @@ namespace PepperDash.Essentials.DM HdcpSupportCapability = eHdcpCapabilityType.Hdcp2_2Support; - In1VideoSyncFeedback = new BoolFeedback("In1VideoSync", () => + Hdmi1VideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.HdmiInputs[1].SyncDetectedFeedback.BoolValue; }); - In2VideoSyncFeedback = new BoolFeedback("In2VideoSync", () => + Hdmi2VideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.HdmiInputs[2].SyncDetectedFeedback.BoolValue; }); - In3VideoSyncFeedback = new BoolFeedback("In3VideoSync", () => + DisplayPortVideoSyncFeedback = new BoolFeedback(() => { return (bool)tx.DisplayPortInput.SyncDetectedFeedback.BoolValue; }); @@ -193,7 +193,7 @@ namespace PepperDash.Essentials.DM AnyVideoInput.VideoStatus.HasVideoStatusFeedback, AnyVideoInput.VideoStatus.HdcpActiveFeedback, AnyVideoInput.VideoStatus.HdcpStateFeedback, AnyVideoInput.VideoStatus.VideoResolutionFeedback, AnyVideoInput.VideoStatus.VideoSyncFeedback, HdmiIn1HdcpCapabilityFeedback, HdmiIn2HdcpCapabilityFeedback, - In1VideoSyncFeedback, In2VideoSyncFeedback, In3VideoSyncFeedback); + Hdmi1VideoSyncFeedback, Hdmi2VideoSyncFeedback, DisplayPortVideoSyncFeedback); // Set Ports for CEC HdmiIn1.Port = Tx.HdmiInputs[1]; @@ -222,7 +222,22 @@ namespace PepperDash.Essentials.DM public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { - LinkDmTxToApi(this, trilist, joinStart, joinMapKey, bridge); + DmTxControllerJoinMap joinMap = GetDmTxJoinMap(joinStart, joinMapKey); + + if (Hdmi1VideoSyncFeedback != null) + { + Hdmi1VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + } + if (Hdmi2VideoSyncFeedback != null) + { + Hdmi2VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + } + if (DisplayPortVideoSyncFeedback != null) + { + DisplayPortVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input3VideoSyncStatus]); + } + + LinkDmTxToApi(this, trilist, joinMap, bridge); } public void ExecuteNumericSwitch(ushort input, ushort output, eRoutingSignalType type) 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 ee9a18e9..d9f156bd 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs @@ -171,9 +171,8 @@ namespace PepperDash.Essentials.DM { } - protected void LinkDmTxToApi(DmTxControllerBase tx, BasicTriList trilist, uint joinStart, string joinMapKey, - EiscApiAdvanced bridge) - { + protected DmTxControllerJoinMap GetDmTxJoinMap(uint joinStart, string joinMapKey) + { var joinMap = new DmTxControllerJoinMap(); var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); @@ -183,6 +182,11 @@ namespace PepperDash.Essentials.DM joinMap.OffsetJoinNumbers(joinStart); + return joinMap; + } + + protected void LinkDmTxToApi(DmTxControllerBase tx, BasicTriList trilist, DmTxControllerJoinMap joinMap, EiscApiAdvanced bridge) + { if (tx.Hardware is DmHDBasedTEndPoint) { Debug.Console(1, tx, "No properties to link. Skipping device {0}", tx.Name); @@ -217,25 +221,6 @@ 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]; From 6e741c4d44e7a670239a203bbdabb008ee7c5143 Mon Sep 17 00:00:00 2001 From: Trevor Payne Date: Fri, 8 May 2020 13:57:43 -0500 Subject: [PATCH 5/5] Updated Joinmaps to JoinMapBaseAdvanced --- .../Bridges/JoinMaps/DmTxControllerJoinMap.cs | 119 +++--------------- .../Transmitters/DmTx200Controller.cs | 4 +- .../Transmitters/DmTx201CController.cs | 4 +- .../Transmitters/DmTx401CController.cs | 6 +- .../Transmitters/DmTx4k202CController.cs | 8 +- .../Transmitters/DmTx4k302CController.cs | 12 +- .../Transmitters/DmTx4kz302CController.cs | 12 +- .../Endpoints/Transmitters/DmTxHelpers.cs | 8 +- 8 files changed, 44 insertions(+), 129 deletions(-) diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmTxControllerJoinMap.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmTxControllerJoinMap.cs index d8fe0c76..8b59bd42 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmTxControllerJoinMap.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/DmTxControllerJoinMap.cs @@ -1,37 +1,9 @@ -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Core.Bridges -{ - public class DmTxControllerJoinMap : JoinMapBaseAdvanced - { -<<<<<<< HEAD - #region Digitals - /// - /// High when device is online (if not attached to a DMP3 or DM chassis with a CPU3 card - /// - public uint IsOnline { get; set; } - /// - /// High when video sync is detected - /// - public uint VideoSyncStatus { get; set; } - /// - /// - /// - 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 -======= +using PepperDash.Essentials.Core; + +namespace PepperDash.Essentials.Core.Bridges +{ + public class DmTxControllerJoinMap : JoinMapBaseAdvanced + { [JoinName("IsOnline")] public JoinDataComplete IsOnline = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 }, new JoinMetadata() { Label = "DM TX Online", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital }); @@ -44,6 +16,18 @@ namespace PepperDash.Essentials.Core.Bridges public JoinDataComplete FreeRunEnabled = new JoinDataComplete(new JoinData() { JoinNumber = 3, JoinSpan = 1 }, new JoinMetadata() { Label = "DM TX Enable Free Run Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital }); + [JoinName("Input1VideoSyncStatus")] + public JoinDataComplete Input1VideoSyncStatus = new JoinDataComplete(new JoinData() { JoinNumber = 4, JoinSpan = 1 }, + new JoinMetadata() { Label = "Input 1 Video Sync Status", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital }); + + [JoinName("Input2VideoSyncStatus")] + public JoinDataComplete Input2VideoSyncStatus = new JoinDataComplete(new JoinData() { JoinNumber = 5, JoinSpan = 1 }, + new JoinMetadata() { Label = "Input 2 Video Sync Status", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital }); + + [JoinName("Input3VideoSyncStatus")] + public JoinDataComplete Input3VideoSyncStatus = new JoinDataComplete(new JoinData() { JoinNumber = 6, JoinSpan = 1 }, + new JoinMetadata() { Label = "Input 3 Video Sync Status", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital }); + [JoinName("CurrentInputResolution")] public JoinDataComplete CurrentInputResolution = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 }, new JoinMetadata() { Label = "DM TX Current Input Resolution", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial }); @@ -81,70 +65,5 @@ namespace PepperDash.Essentials.Core.Bridges : base(joinStart, typeof(DmTxControllerJoinMap)) { } ->>>>>>> development - - -<<<<<<< HEAD - /// - /// Sets and reports the current VGA Brightness level - /// - public uint VgaBrightness { get; set; } - - /// - /// Sets and reports the current VGA Contrast level - /// - public uint VgaContrast { get; set; } - #endregion - - #region Serials - /// - /// Reports the current input resolution - /// - public uint CurrentInputResolution { get; set; } - #endregion - - - public DmTxControllerJoinMap() - { - // Digital - IsOnline = 1; - VideoSyncStatus = 2; - FreeRunEnabled = 3; - Input1VideoSyncStatus = 4; - Input2VideoSyncStatus = 5; - Input3VideoSyncStatus = 6; - // Serial - CurrentInputResolution = 1; - // Analog - VideoInput = 1; - AudioInput = 2; - HdcpSupportCapability = 3; - Port1HdcpState = 4; - Port2HdcpState = 5; - VgaBrightness = 6; - VgaContrast = 7; - } - - public override void OffsetJoinNumbers(uint joinStart) - { - var joinOffset = joinStart - 1; - - 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; - HdcpSupportCapability = HdcpSupportCapability + joinOffset; - Port1HdcpState = Port1HdcpState + joinOffset; - Port2HdcpState = Port2HdcpState + joinOffset; - VgaBrightness = VgaBrightness + joinOffset; - VgaContrast = VgaContrast + joinOffset; - } -======= ->>>>>>> development - } + } } \ No newline at end of file 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 13963fa4..e75a9d55 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx200Controller.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx200Controller.cs @@ -237,11 +237,11 @@ namespace PepperDash.Essentials.DM if (HdmiVideoSyncFeedback != null) { - HdmiVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + HdmiVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus.JoinNumber]); } if (VgaVideoSyncFeedback != null) { - VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus.JoinNumber]); } LinkDmTxToApi(this, trilist, joinMap, bridge); 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 ceebb32a..54be5720 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx201CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx201CController.cs @@ -239,11 +239,11 @@ namespace PepperDash.Essentials.DM if (HdmiVideoSyncFeedback != null) { - HdmiVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + HdmiVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus.JoinNumber]); } if (VgaVideoSyncFeedback != null) { - VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus.JoinNumber]); } LinkDmTxToApi(this, trilist, joinMap, bridge); 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 ac65e90e..46cae247 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx401CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx401CController.cs @@ -242,11 +242,11 @@ namespace PepperDash.Essentials.DM if (HdmiVideoSyncFeedback != null) { - HdmiVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + HdmiVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus.JoinNumber]); } if (VgaVideoSyncFeedback != null) - { - VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + { + VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus.JoinNumber]); } LinkDmTxToApi(this, trilist, joinMap, bridge); 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 2121d2bb..460876b4 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k202CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k202CController.cs @@ -206,12 +206,12 @@ namespace PepperDash.Essentials.DM DmTxControllerJoinMap joinMap = GetDmTxJoinMap(joinStart, joinMapKey); if (Hdmi1VideoSyncFeedback != null) - { - Hdmi1VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + { + Hdmi1VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus.JoinNumber]); } if (Hdmi2VideoSyncFeedback != null) - { - Hdmi2VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + { + Hdmi2VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus.JoinNumber]); } LinkDmTxToApi(this, trilist, joinMap, bridge); 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 58e8e301..7d787051 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k302CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4k302CController.cs @@ -249,16 +249,16 @@ namespace PepperDash.Essentials.DM DmTxControllerJoinMap joinMap = GetDmTxJoinMap(joinStart, joinMapKey); if (Hdmi1VideoSyncFeedback != null) - { - Hdmi1VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + { + Hdmi1VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus.JoinNumber]); } if (Hdmi2VideoSyncFeedback != null) - { - Hdmi2VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + { + Hdmi2VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus.JoinNumber]); } if (VgaVideoSyncFeedback != null) - { - VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input3VideoSyncStatus]); + { + VgaVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input3VideoSyncStatus.JoinNumber]); } LinkDmTxToApi(this, trilist, joinMap, bridge); 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 38810eed..1c5703a0 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4kz302CController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTx4kz302CController.cs @@ -225,16 +225,16 @@ namespace PepperDash.Essentials.DM DmTxControllerJoinMap joinMap = GetDmTxJoinMap(joinStart, joinMapKey); if (Hdmi1VideoSyncFeedback != null) - { - Hdmi1VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus]); + { + Hdmi1VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input1VideoSyncStatus.JoinNumber]); } if (Hdmi2VideoSyncFeedback != null) - { - Hdmi2VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus]); + { + Hdmi2VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input2VideoSyncStatus.JoinNumber]); } if (DisplayPortVideoSyncFeedback != null) - { - DisplayPortVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input3VideoSyncStatus]); + { + DisplayPortVideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Input3VideoSyncStatus.JoinNumber]); } LinkDmTxToApi(this, trilist, joinMap, bridge); 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 c1dc5db6..d5fd9dd2 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/Endpoints/Transmitters/DmTxHelpers.cs @@ -171,10 +171,8 @@ namespace PepperDash.Essentials.DM { } - - protected void LinkDmTxToApi(DmTxControllerBase tx, BasicTriList trilist, uint joinStart, string joinMapKey, - EiscApiAdvanced bridge) - { + protected DmTxControllerJoinMap GetDmTxJoinMap(uint joinStart, string joinMapKey) + { var joinMap = new DmTxControllerJoinMap(joinStart); var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); @@ -182,8 +180,6 @@ namespace PepperDash.Essentials.DM if (!string.IsNullOrEmpty(joinMapSerialized)) joinMap = JsonConvert.DeserializeObject(joinMapSerialized); - bridge.AddJoinMap(Key, joinMap); - return joinMap; }