Merge pull request #132 from PepperDash/feature/CameraBase-fix

Fix Issues with DisplayBase and CameraBase backwards compatibility
This commit is contained in:
Neil Dorin
2020-04-28 14:23:38 -06:00
committed by GitHub
15 changed files with 36 additions and 37 deletions

View File

@@ -114,11 +114,13 @@ namespace PepperDash.Essentials.Core.Bridges
//{ //{
// Debug.Console(2, this, "'{0}' is IBridge", device.Key); // Debug.Console(2, this, "'{0}' is IBridge", device.Key);
//} //}
if (device.GetType().GetCType().IsAssignableFrom(typeof (IBridgeAdvanced))) if (!typeof (IBridgeAdvanced).IsAssignableFrom(device.GetType().GetCType()))
{ {
var bridge = device as IBridgeAdvanced; continue;
if (bridge != null) bridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
} }
var bridge = device as IBridgeAdvanced;
if (bridge != null) bridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
} }

View File

@@ -30,7 +30,7 @@ namespace PepperDash.Essentials.Core
{ {
Port = postActivationFunc(config); Port = postActivationFunc(config);
ConfigureComPort(); RegisterAndConfigureComPort();
}); });
} }
@@ -47,16 +47,13 @@ namespace PepperDash.Essentials.Core
Spec = spec; Spec = spec;
//IsConnected = new BoolFeedback(CommonBoolCue.IsConnected, () => true); //IsConnected = new BoolFeedback(CommonBoolCue.IsConnected, () => true);
RegisterAndConfigureComPort();
ConfigureComPort();
} }
private void ConfigureComPort() private void RegisterAndConfigureComPort()
{ {
if (Port.Parent is CrestronControlSystem) if (Port.Parent is CrestronControlSystem)
{ {
var result = Port.Register(); var result = Port.Register();
if (result != eDeviceRegistrationUnRegistrationResponse.Success) if (result != eDeviceRegistrationUnRegistrationResponse.Success)
{ {

View File

@@ -14,7 +14,7 @@ using PepperDash.Essentials.Core.Routing;
namespace PepperDash.Essentials.Core namespace PepperDash.Essentials.Core
{ {
public class BasicIrDisplay : DisplayBase, IBasicVolumeControls, IPower, IWarmingCooling public class BasicIrDisplay : DisplayBase, IBasicVolumeControls, IBridgeAdvanced
{ {
public IrOutputPortController IrPort { get; private set; } public IrOutputPortController IrPort { get; private set; }
public ushort IrPulseTime { get; set; } public ushort IrPulseTime { get; set; }
@@ -204,7 +204,7 @@ namespace PepperDash.Essentials.Core
#endregion #endregion
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge); LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge);
} }

View File

@@ -18,7 +18,7 @@ namespace PepperDash.Essentials.Core
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public abstract class DisplayBase : EssentialsBridgeableDevice, IHasFeedback, IRoutingSinkWithSwitching, IPower, IWarmingCooling, IUsageTracking public abstract class DisplayBase : EssentialsDevice, IHasFeedback, IRoutingSinkWithSwitching, IPower, IWarmingCooling, IUsageTracking
{ {
public event SourceInfoChangeHandler CurrentSourceChange; public event SourceInfoChangeHandler CurrentSourceChange;

View File

@@ -19,7 +19,7 @@ namespace PepperDash.Essentials.Core
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public class MockDisplay : TwoWayDisplayBase, IBasicVolumeWithFeedback public class MockDisplay : TwoWayDisplayBase, IBasicVolumeWithFeedback, IBridgeAdvanced
{ {
public RoutingInputPort HdmiIn1 { get; private set; } public RoutingInputPort HdmiIn1 { get; private set; }
@@ -177,7 +177,7 @@ namespace PepperDash.Essentials.Core
#endregion #endregion
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge); LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge);
} }

View File

@@ -25,7 +25,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
Focus = 8 Focus = 8
} }
public abstract class CameraBase : EssentialsBridgeableDevice, IRoutingOutputs public abstract class CameraBase : EssentialsDevice, IRoutingOutputs
{ {
public eCameraControlMode ControlMode { get; protected set; } public eCameraControlMode ControlMode { get; protected set; }

View File

@@ -14,7 +14,7 @@ using Crestron.SimplSharp.Reflection;
namespace PepperDash.Essentials.Devices.Common.Cameras namespace PepperDash.Essentials.Devices.Common.Cameras
{ {
public class CameraVisca : CameraBase, IHasCameraPtzControl, ICommunicationMonitor, IHasCameraPresets, IPower public class CameraVisca : CameraBase, IHasCameraPtzControl, ICommunicationMonitor, IHasCameraPresets, IPower, IBridgeAdvanced
{ {
public IBasicCommunication Communication { get; private set; } public IBasicCommunication Communication { get; private set; }
public CommunicationGather PortGather { get; private set; } public CommunicationGather PortGather { get; private set; }
@@ -82,7 +82,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
return true; return true;
} }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge); LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge);
} }

View File

@@ -19,7 +19,7 @@ namespace PepperDash.Essentials.Devices.Displays
/// ///
/// </summary> /// </summary>
public class AvocorDisplay : TwoWayDisplayBase, IBasicVolumeWithFeedback, ICommunicationMonitor, IInputDisplayPort1, public class AvocorDisplay : TwoWayDisplayBase, IBasicVolumeWithFeedback, ICommunicationMonitor, IInputDisplayPort1,
IInputHdmi1, IInputHdmi2, IInputHdmi3, IInputHdmi4, IInputVga1 IInputHdmi1, IInputHdmi2, IInputHdmi3, IInputHdmi4, IInputVga1, IBridgeAdvanced
{ {
public IBasicCommunication Communication { get; private set; } public IBasicCommunication Communication { get; private set; }
public CommunicationGather PortGather { get; private set; } public CommunicationGather PortGather { get; private set; }
@@ -203,7 +203,7 @@ namespace PepperDash.Essentials.Devices.Displays
return true; return true;
} }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge); LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge);
} }

View File

@@ -17,7 +17,7 @@ namespace PepperDash.Essentials.Devices.Displays
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public class NecPSXMDisplay : TwoWayDisplayBase, IBasicVolumeWithFeedback, ICommunicationMonitor public class NecPSXMDisplay : TwoWayDisplayBase, IBasicVolumeWithFeedback, ICommunicationMonitor, IBridgeAdvanced
{ {
public IBasicCommunication Communication { get; private set; } public IBasicCommunication Communication { get; private set; }
public CommunicationGather PortGather { get; private set; } public CommunicationGather PortGather { get; private set; }
@@ -154,7 +154,7 @@ namespace PepperDash.Essentials.Devices.Displays
return true; return true;
} }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge); LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge);
} }

View File

@@ -11,7 +11,7 @@ using PepperDash.Essentials.Core.Bridges;
namespace PepperDash.Essentials.Devices.Displays namespace PepperDash.Essentials.Devices.Displays
{ {
public class NecPaSeriesProjector : ComTcpDisplayBase public class NecPaSeriesProjector : ComTcpDisplayBase, IBridgeAdvanced
{ {
public readonly IntFeedback Lamp1RemainingPercent; public readonly IntFeedback Lamp1RemainingPercent;
int _Lamp1RemainingPercent; int _Lamp1RemainingPercent;
@@ -219,7 +219,7 @@ namespace PepperDash.Essentials.Devices.Displays
} }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge); LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge);
} }

View File

@@ -17,7 +17,7 @@ namespace PepperDash.Essentials.Devices.Displays
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public class PanasonicThDisplay : TwoWayDisplayBase, IBasicVolumeWithFeedback, ICommunicationMonitor public class PanasonicThDisplay : TwoWayDisplayBase, IBasicVolumeWithFeedback, ICommunicationMonitor, IBridgeAdvanced
{ {
public IBasicCommunication Communication { get; private set; } public IBasicCommunication Communication { get; private set; }
public CommunicationGather PortGather { get; private set; } public CommunicationGather PortGather { get; private set; }
@@ -146,7 +146,7 @@ namespace PepperDash.Essentials.Devices.Displays
return true; return true;
} }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge); LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge);
} }

View File

@@ -21,7 +21,7 @@ namespace PepperDash.Essentials.Devices.Displays
/// ///
/// </summary> /// </summary>
public class SamsungMDC : TwoWayDisplayBase, IBasicVolumeWithFeedback, ICommunicationMonitor, IInputDisplayPort1, IInputDisplayPort2, public class SamsungMDC : TwoWayDisplayBase, IBasicVolumeWithFeedback, ICommunicationMonitor, IInputDisplayPort1, IInputDisplayPort2,
IInputHdmi1, IInputHdmi2, IInputHdmi3, IInputHdmi4 IInputHdmi1, IInputHdmi2, IInputHdmi3, IInputHdmi4, IBridgeAdvanced
{ {
public IBasicCommunication Communication { get; private set; } public IBasicCommunication Communication { get; private set; }
@@ -152,7 +152,7 @@ namespace PepperDash.Essentials.Devices.Displays
return true; return true;
} }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge); LinkDisplayToApi(this, trilist, joinStart, joinMapKey, bridge);
} }

View File

@@ -9,7 +9,7 @@ using PepperDash.Essentials.Devices.Common.Cameras;
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
{ {
public class CiscoFarEndCamera : CameraBase, IHasCameraPtzControl, IAmFarEndCamera public class CiscoFarEndCamera : CameraBase, IHasCameraPtzControl, IAmFarEndCamera, IBridgeAdvanced
{ {
protected CiscoSparkCodec ParentCodec { get; private set; } protected CiscoSparkCodec ParentCodec { get; private set; }
@@ -100,13 +100,13 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
ParentCodec.SendText(string.Format("xCommand Call FarEndControl Camera Stop CallId: {0}", CallId)); ParentCodec.SendText(string.Format("xCommand Call FarEndControl Camera Stop CallId: {0}", CallId));
} }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge); LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge);
} }
} }
public class CiscoSparkCamera : CameraBase, IHasCameraPtzControl, IHasCameraFocusControl public class CiscoSparkCamera : CameraBase, IHasCameraPtzControl, IHasCameraFocusControl, IBridgeAdvanced
{ {
/// <summary> /// <summary>
/// The codec this camera belongs to /// The codec this camera belongs to
@@ -315,7 +315,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
#endregion #endregion
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge); LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge);
} }

View File

@@ -10,7 +10,7 @@ using PepperDash.Essentials.Devices.Common.VideoCodec;
namespace PepperDash.Essentials.Devices.Common.Cameras namespace PepperDash.Essentials.Devices.Common.Cameras
{ {
public class MockVCCamera : CameraBase, IHasCameraPtzControl, IHasCameraFocusControl public class MockVCCamera : CameraBase, IHasCameraPtzControl, IHasCameraFocusControl, IBridgeAdvanced
{ {
protected VideoCodecBase ParentCodec { get; private set; } protected VideoCodecBase ParentCodec { get; private set; }
@@ -113,13 +113,13 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
#endregion #endregion
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge); LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge);
} }
} }
public class MockFarEndVCCamera : CameraBase, IHasCameraPtzControl, IAmFarEndCamera public class MockFarEndVCCamera : CameraBase, IHasCameraPtzControl, IAmFarEndCamera, IBridgeAdvanced
{ {
protected VideoCodecBase ParentCodec { get; private set; } protected VideoCodecBase ParentCodec { get; private set; }
@@ -198,7 +198,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
#endregion #endregion
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge); LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge);
} }

View File

@@ -30,7 +30,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
} }
public class ZoomRoomCamera : CameraBase, IHasCameraPtzControl public class ZoomRoomCamera : CameraBase, IHasCameraPtzControl, IBridgeAdvanced
{ {
protected ZoomRoom ParentCodec { get; private set; } protected ZoomRoom ParentCodec { get; private set; }
@@ -200,7 +200,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
#endregion #endregion
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge); LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge);
} }