From 4db91b4f6841c837869ec5135a90234c9b4a4104 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 14 Jul 2020 09:50:25 -0600 Subject: [PATCH] Inheritance --- .../UIDrivers/IHasCalendarButton.cs | 8 +- .../EssentialsDualDisplayFusionController.cs | 139 +----------------- 2 files changed, 5 insertions(+), 142 deletions(-) diff --git a/PepperDashEssentials/UIDrivers/IHasCalendarButton.cs b/PepperDashEssentials/UIDrivers/IHasCalendarButton.cs index b42bb326..b4fe652c 100644 --- a/PepperDashEssentials/UIDrivers/IHasCalendarButton.cs +++ b/PepperDashEssentials/UIDrivers/IHasCalendarButton.cs @@ -1,16 +1,14 @@ -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials +namespace PepperDash.Essentials { public interface IHasCalendarButton { - EssentialsRoomBase CurrentRoom { get; } + EssentialsHuddleVtc1Room CurrentRoom { get; } void CalendarPress(); } public interface IHasCallButton { - EssentialsRoomBase CurrentRoom { get; } + EssentialsHuddleVtc1Room CurrentRoom { get; } void ShowActiveCallsList(); } } \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Fusion/EssentialsDualDisplayFusionController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Fusion/EssentialsDualDisplayFusionController.cs index 82ded973..88364e80 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Fusion/EssentialsDualDisplayFusionController.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Fusion/EssentialsDualDisplayFusionController.cs @@ -1,14 +1,12 @@ using System; using System.Linq; -using Crestron.SimplSharpPro; using PepperDash.Core; using PepperDash.Essentials.Core.Config; namespace PepperDash.Essentials.Core.Fusion { - public class EssentialsDualDisplayFusionController:EssentialsHuddleSpaceFusionSystemControllerBase + public class EssentialsDualDisplayFusionController:EssentialsHuddleVtc1FusionController { - private BooleanSigData _codecIsInCall; private readonly EssentialsDualDisplayRoom _room; public EssentialsDualDisplayFusionController(EssentialsDualDisplayRoom room, uint ipId) : base(room, ipId) @@ -23,7 +21,6 @@ namespace PepperDash.Essentials.Core.Fusion var leftDisplay = _room.LeftDisplay as DisplayBase; var rightDisplay = _room.RightDisplay as DisplayBase; - SetUpCodec(); SetUpDisplay(leftDisplay); SetUpDisplay(rightDisplay); base.ExecuteCustomSteps(); @@ -45,7 +42,7 @@ namespace PepperDash.Essentials.Core.Fusion display.UsageTracker = new UsageTracking(display){UsageIsTracked = true}; display.UsageTracker.DeviceUsageEnded += UsageTrackerOnDeviceUsageEnded; - var config = ConfigReader.ConfigObject.Devices.SingleOrDefault((d) => d.Key == display.Key); + var config = ConfigReader.ConfigObject.Devices.SingleOrDefault(d => d.Key == display.Key); if (!FusionStaticAssets.TryGetValue(config.Uid, out tempAsset)) { @@ -82,137 +79,5 @@ namespace PepperDash.Essentials.Core.Fusion } #endregion - - /// - /// Creates a static asset for the codec and maps the joins to the main room symbol - /// - private void SetUpCodec() - { - try - { - var essentialsHuddleVtc1Room = Room as EssentialsHuddleVtc1Room; - if (essentialsHuddleVtc1Room == null) - { - return; - } - - var codec = essentialsHuddleVtc1Room.VideoCodec; - - if (codec == null) - { - Debug.Console(1, this, "Cannot link codec to Fusion because codec is null"); - return; - } - - codec.UsageTracker = new UsageTracking(codec) { UsageIsTracked = true }; - codec.UsageTracker.DeviceUsageEnded += UsageTracker_DeviceUsageEnded; - - var codecPowerOnAction = new Action(b => - { - if (!b) - { - codec.StandbyDeactivate(); - } - }); - var codecPowerOffAction = new Action(b => - { - if (!b) - { - codec.StandbyActivate(); - } - }); - - // Map FusionRoom Attributes: - - // Codec volume - var codecVolume = FusionRoom.CreateOffsetUshortSig(50, "Volume - Fader01", eSigIoMask.InputOutputSig); - codecVolume.OutputSig.UserObject = - new Action(b => (codec as IBasicVolumeWithFeedback).SetVolume(b)); - (codec as IBasicVolumeWithFeedback).VolumeLevelFeedback.LinkInputSig(codecVolume.InputSig); - - // In Call Status - _codecIsInCall = FusionRoom.CreateOffsetBoolSig(69, "Conf - VC 1 In Call", eSigIoMask.InputSigOnly); - codec.CallStatusChange += codec_CallStatusChange; - - // Online status - if (codec is ICommunicationMonitor) - { - var c = codec as ICommunicationMonitor; - var codecOnline = FusionRoom.CreateOffsetBoolSig(122, "Online - VC 1", eSigIoMask.InputSigOnly); - codecOnline.InputSig.BoolValue = c.CommunicationMonitor.Status == MonitorStatus.IsOk; - c.CommunicationMonitor.StatusChange += - (o, a) => { codecOnline.InputSig.BoolValue = a.Status == MonitorStatus.IsOk; }; - Debug.Console(0, this, "Linking '{0}' communication monitor to Fusion '{1}'", codec.Key, - "Online - VC 1"); - } - - // Codec IP Address - var codecHasIpInfo = false; - var codecComm = codec.Communication; - - var codecIpAddress = string.Empty; - var codecIpPort = 0; - - if (codecComm is GenericSshClient) - { - codecIpAddress = (codecComm as GenericSshClient).Hostname; - codecIpPort = (codecComm as GenericSshClient).Port; - codecHasIpInfo = true; - } - else if (codecComm is GenericTcpIpClient) - { - codecIpAddress = (codecComm as GenericTcpIpClient).Hostname; - codecIpPort = (codecComm as GenericTcpIpClient).Port; - codecHasIpInfo = true; - } - - if (codecHasIpInfo) - { - var codecIpAddressSig = FusionRoom.CreateOffsetStringSig(121, "IP Address - VC", - eSigIoMask.InputSigOnly); - codecIpAddressSig.InputSig.StringValue = codecIpAddress; - - var codecIpPortSig = FusionRoom.CreateOffsetStringSig(150, "IP Port - VC", - eSigIoMask.InputSigOnly); - codecIpPortSig.InputSig.StringValue = codecIpPort.ToString(); - } - - FusionAsset tempAsset; - - var deviceConfig = ConfigReader.ConfigObject.Devices.FirstOrDefault(c => c.Key.Equals(codec.Key)); - - if (FusionStaticAssets.ContainsKey(deviceConfig.Uid)) - { - tempAsset = FusionStaticAssets[deviceConfig.Uid]; - } - else - { - // Create a new asset - tempAsset = new FusionAsset(FusionRoomGuids.GetNextAvailableAssetNumber(FusionRoom), codec.Name, - "Codec", ""); - FusionStaticAssets.Add(deviceConfig.Uid, tempAsset); - } - - var codecAsset = FusionRoom.CreateStaticAsset(tempAsset.SlotNumber, tempAsset.Name, "Display", - tempAsset.InstanceId); - codecAsset.PowerOn.OutputSig.UserObject = codecPowerOnAction; - codecAsset.PowerOff.OutputSig.UserObject = codecPowerOffAction; - codec.StandbyIsOnFeedback.LinkComplementInputSig(codecAsset.PowerOn.InputSig); - - codecAsset.TrySetMakeModel(codec); - codecAsset.TryLinkAssetErrorToCommunication(codec); - } - catch (Exception e) - { - Debug.Console(1, this, "Error setting up codec in Fusion: {0}", e); - } - } - - private void codec_CallStatusChange(object sender, Devices.Codec.CodecCallStatusItemChangeEventArgs e) - { - var codec = _room.VideoCodec; - - _codecIsInCall.InputSig.BoolValue = codec.IsInCall; - } } } \ No newline at end of file