diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 890b7769..d44e7848 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -91,8 +91,8 @@ we receive and the availability of resources to evaluate contributions, we antic project remains dynamic and relevant. This may affect our responsiveness and ability to accept pull requests quickly. This does not mean we are ignoring them. - Not all innovative ideas need to be accepted as pull requests into this GitHub project to be valuable to the community. - There may be times when we recommend that you just share your code for some enhancement to Ghidra from your own - repository. As we identify and recognize extensions that are of general interest to the reverse engineering community, we + There may be times when we recommend that you just share your code for some enhancement to Essentials from your own + repository. As we identify and recognize extensions that are of general interest to Essentials, we may seek to incorporate them with our baseline. ## Legal diff --git a/PepperDashEssentials/Bridges/EiscBridge.cs b/PepperDashEssentials/Bridges/EiscBridge.cs index 21a220ef..c768924b 100644 --- a/PepperDashEssentials/Bridges/EiscBridge.cs +++ b/PepperDashEssentials/Bridges/EiscBridge.cs @@ -70,7 +70,7 @@ namespace PepperDash.Essentials.Bridges catch (NullReferenceException) { Debug.ConsoleWithLog(0, this, - "Please update the bridge config to use EiscBridgeAdvanced with this device: {0}", device.Key); + "Please update the bridge config to use eiscApiAdvanced with this device: {0}", device.Key); } } Debug.Console(1, this, "Devices Linked."); diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/AirMediaControllerJoinMap.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/AirMediaControllerJoinMap.cs index 126c6112..170da721 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/AirMediaControllerJoinMap.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/AirMediaControllerJoinMap.cs @@ -20,6 +20,18 @@ namespace PepperDash.Essentials.Core.Bridges public JoinDataComplete AutomaticInputRoutingEnabled = new JoinDataComplete(new JoinData { JoinNumber = 4, JoinSpan = 1 }, new JoinMetadata { Description = "Air Media Automatic Input Routing Enable(d)", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital }); + [JoinName("HdmiInHdcpSupportOn")] + public JoinDataComplete HdmiInHdcpSupportOn = new JoinDataComplete(new JoinData { JoinNumber = 4, JoinSpan = 1 }, + new JoinMetadata { Description = "Turns on HDCP support for HDMI in. Reports state as FB", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital }); + + [JoinName("HdmiInHdcpSupportOff")] + public JoinDataComplete HdmiInHdcpSupportOff = new JoinDataComplete(new JoinData { JoinNumber = 5, JoinSpan = 1 }, + new JoinMetadata { Description = "Turns off HDCP support for HDMI in. Reports state as FB", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital }); + + [JoinName("HdmiInDisabledByHdcp")] + public JoinDataComplete HdmiInDisabledByHdcp = new JoinDataComplete(new JoinData { JoinNumber = 6, JoinSpan = 1 }, + new JoinMetadata { Description = "Reports if ", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital }); + [JoinName("VideoOut")] public JoinDataComplete VideoOut = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 }, new JoinMetadata { Description = "Air Media Video Route Select / Feedback", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog }); diff --git a/essentials-framework/Essentials DM/Essentials_DM/AirMedia/AirMediaController.cs b/essentials-framework/Essentials DM/Essentials_DM/AirMedia/AirMediaController.cs index b1fa3186..5a1d50ff 100644 --- a/essentials-framework/Essentials DM/Essentials_DM/AirMedia/AirMediaController.cs +++ b/essentials-framework/Essentials DM/Essentials_DM/AirMedia/AirMediaController.cs @@ -43,11 +43,12 @@ namespace PepperDash.Essentials.DM.AirMedia public BoolFeedback HdmiVideoSyncDetectedFeedback { get; private set; } public StringFeedback SerialNumberFeedback { get; private set; } public BoolFeedback AutomaticInputRoutingEnabledFeedback { get; private set; } + public BoolFeedback HdmiInHdcpSupportOnFeedback { get; private set; } + public BoolFeedback HdmiInDisabledByHdcpFeedback { get; private set; } public AirMediaController(string key, string name, Am3x00 device, DeviceConfig dc, AirMediaPropertiesConfig props) : base(key, name, device) { - AirMedia = device; DeviceConfig = dc; @@ -101,6 +102,8 @@ namespace PepperDash.Essentials.DM.AirMedia LoginCodeFeedback = new IntFeedback(() => AirMedia.AirMedia.LoginCodeFeedback.UShortValue); ConnectionAddressFeedback = new StringFeedback(() => AirMedia.AirMedia.ConnectionAddressFeedback.StringValue); HostnameFeedback = new StringFeedback(() => AirMedia.AirMedia.HostNameFeedback.StringValue); + HdmiInHdcpSupportOnFeedback = new BoolFeedback(() => AirMedia.HdmiIn.HdcpSupportOnFeedback.BoolValue); + HdmiInDisabledByHdcpFeedback = new BoolFeedback(() => AirMedia.HdmiIn.DisabledByHdcpFeedback.BoolValue); // TODO: Figure out if we can actually get the TSID/Serial SerialNumberFeedback = new StringFeedback(() => "unknown"); @@ -178,6 +181,13 @@ namespace PepperDash.Essentials.DM.AirMedia ConnectionAddressFeedback.LinkInputSig(trilist.StringInput[joinMap.ConnectionAddressFB.JoinNumber]); HostnameFeedback.LinkInputSig(trilist.StringInput[joinMap.HostnameFB.JoinNumber]); SerialNumberFeedback.LinkInputSig(trilist.StringInput[joinMap.SerialNumberFeedback.JoinNumber]); + + trilist.SetSigFalseAction(joinMap.HdmiInHdcpSupportOn.JoinNumber, () => SetHcdpSupport(true)); + HdmiInHdcpSupportOnFeedback.LinkInputSig(trilist.BooleanInput[joinMap.HdmiInHdcpSupportOn.JoinNumber]); + trilist.SetSigFalseAction(joinMap.HdmiInHdcpSupportOff.JoinNumber, () => SetHcdpSupport(false)); + HdmiInHdcpSupportOnFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.HdmiInHdcpSupportOff.JoinNumber]); + + HdmiInDisabledByHdcpFeedback.LinkInputSig(trilist.BooleanInput[joinMap.HdmiInDisabledByHdcp.JoinNumber]); } /// @@ -248,6 +258,14 @@ namespace PepperDash.Essentials.DM.AirMedia { if (args.EventId == DMInputEventIds.SourceSyncEventId) HdmiVideoSyncDetectedFeedback.FireUpdate(); + else if (args.EventId == DMInputEventIds.HdcpSupportOnEventId) + { + HdmiInHdcpSupportOnFeedback.FireUpdate(); + } + else if (args.EventId == DMInputEventIds.DisabledByHdcpEventId) + { + HdmiInDisabledByHdcpFeedback.FireUpdate(); + } } /// @@ -296,6 +314,14 @@ namespace PepperDash.Essentials.DM.AirMedia AirMedia.DisplayControl.VideoOut = AmX00DisplayControl.eAirMediaX00VideoSource.AirBoard; } + public void SetHcdpSupport(bool on) + { + if (on) + AirMedia.HdmiIn.HdcpSupportOn(); + else + AirMedia.HdmiIn.HdcpSupportOff(); + } + /// /// Reboots the device /// diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs index 187cc855..1a842bc5 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs @@ -994,7 +994,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec //Special Change for protected directory clear - trilist.SetBoolSigAction(joinMap.DirectoryClearSelected.JoinNumber, (b) => SelectDirectoryEntry(_directoryCodec, 0, _directoryTrilist, _directoryJoinmap)); + trilist.SetBoolSigAction(joinMap.DirectoryClearSelected.JoinNumber, (b) => SelectDirectoryEntry(codec, 0, trilist, joinMap)); // Report feedback for number of contact methods for selected contact diff --git a/packages.config b/packages.config index fa36e07d..eff6d8ce 100644 --- a/packages.config +++ b/packages.config @@ -1,3 +1,3 @@ - +