From 0525f76b6bdaea86f484e587bdf3c439c82d6829 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 9 Jun 2020 10:57:17 -0600 Subject: [PATCH 1/2] Added IBridge to Core made existing IBridge inherit from it for backwards compatabilty --- PepperDashEssentials/Bridges/IBridge.cs | 4 +--- .../PepperDashEssentialsBase/Bridges/IBridge.cs | 8 +++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/PepperDashEssentials/Bridges/IBridge.cs b/PepperDashEssentials/Bridges/IBridge.cs index 497985c7..8bc741ec 100644 --- a/PepperDashEssentials/Bridges/IBridge.cs +++ b/PepperDashEssentials/Bridges/IBridge.cs @@ -1,5 +1,4 @@ using System; -using Crestron.SimplSharpPro.DeviceSupport; namespace PepperDash.Essentials.Bridges { @@ -7,8 +6,7 @@ namespace PepperDash.Essentials.Bridges /// Defines a device that uses the legacy JoinMapBase for its join map /// [Obsolete("IBridgeAdvanced should be used going forward with JoinMapBaseAdvanced")] - public interface IBridge + public interface IBridge:Core.Bridges.IBridge { - void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey); } } \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs index 1f10e554..4aca333a 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs @@ -1,13 +1,19 @@ using System; using Crestron.SimplSharpPro.DeviceSupport; +using PepperDash.Core; namespace PepperDash.Essentials.Core.Bridges { /// /// Defines a device that uses JoinMapBaseAdvanced for its join map /// - public interface IBridgeAdvanced + public interface IBridgeAdvanced:IKeyed { void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge); } + + public interface IBridge:IKeyed + { + void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey); + } } \ No newline at end of file From cc6d94b1886a98cee84d000b24cbb4fc29864bde Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 9 Jun 2020 10:57:42 -0600 Subject: [PATCH 2/2] Updates EiscApiAdvanced for backwards compatibility --- .../Bridges/BridgeBase.cs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs index 5bde418f..512401bc 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs @@ -110,15 +110,24 @@ namespace PepperDash.Essentials.Core.Bridges if (device == null) continue; Debug.Console(1, this, "Linking Device: '{0}'", device.Key); - //if (device is IBridge) // Check for this first to allow bridges in plugins to override existing bridges that apply to the same type. - //{ - // Debug.Console(2, this, "'{0}' is IBridge", device.Key); - //} + + if (typeof (IBridge).IsAssignableFrom(device.GetType().GetCType())) + { + var basicBridge = device as IBridge; + if (basicBridge != null) + { + Debug.Console(0, this, Debug.ErrorLogLevel.Notice, + "Linking EiscApiAdvanced {0} to device {1} using obsolete join map. Please update the device's join map.", + Key, device.Key); + basicBridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey); + } + continue; + } + if (!typeof (IBridgeAdvanced).IsAssignableFrom(device.GetType().GetCType())) { continue; } - var bridge = device as IBridgeAdvanced; if (bridge != null) bridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this); }