diff --git a/Essentials Core/PepperDashEssentialsBase/Touchpanels/TriListExtensions.cs b/Essentials Core/PepperDashEssentialsBase/Touchpanels/TriListExtensions.cs index be666c5f..15287a64 100644 --- a/Essentials Core/PepperDashEssentialsBase/Touchpanels/TriListExtensions.cs +++ b/Essentials Core/PepperDashEssentialsBase/Touchpanels/TriListExtensions.cs @@ -162,6 +162,14 @@ namespace PepperDash.Essentials.Core tl.BooleanInput[sigNum].BoolValue = value; } + /// + /// Helper method to set the value of a ushort Sig on TriList + /// + public static void SetUshort(this BasicTriList tl, uint sigNum, ushort value) + { + tl.UShortInput[sigNum].UShortValue = value; + } + /// /// Helper method to set the value of a string Sig on TriList /// diff --git a/Essentials Devices Common/Essentials Devices Common/Codec/CodecActiveCallItem.cs b/Essentials Devices Common/Essentials Devices Common/Codec/CodecActiveCallItem.cs index d8335873..8cded7f6 100644 --- a/Essentials Devices Common/Essentials Devices Common/Codec/CodecActiveCallItem.cs +++ b/Essentials Devices Common/Essentials Devices Common/Codec/CodecActiveCallItem.cs @@ -22,17 +22,16 @@ namespace PepperDash.Essentials.Devices.Common.Codec public object CallMetaData { get; set; } /// - /// Returns true when this call is NOT status Unkown, - /// Disconnected, Disconnecting + /// Returns true when this call is any status other than + /// Unknown, Disconnected, Disconnecting /// public bool IsActiveCall { get { - return - !(Status == eCodecCallStatus.Disconnected + return !(Status == eCodecCallStatus.Disconnected || Status == eCodecCallStatus.Disconnecting - || Status ==eCodecCallStatus.Unknown); + || Status == eCodecCallStatus.Unknown); } } } diff --git a/Essentials Devices Common/Essentials Devices Common/Codec/eCodecCallStatus.cs b/Essentials Devices Common/Essentials Devices Common/Codec/eCodecCallStatus.cs index 18462861..a6aa2bf7 100644 --- a/Essentials Devices Common/Essentials Devices Common/Codec/eCodecCallStatus.cs +++ b/Essentials Devices Common/Essentials Devices Common/Codec/eCodecCallStatus.cs @@ -8,6 +8,7 @@ namespace PepperDash.Essentials.Devices.Common.Codec { public enum eCodecCallStatus { + Unknown = 0, Connected, Connecting, Dialing, @@ -20,6 +21,5 @@ namespace PepperDash.Essentials.Devices.Common.Codec Ringing, Preserved, RemotePreserved, - Unknown = 0 } } \ No newline at end of file diff --git a/Essentials Devices Common/Essentials Devices Common/Codec/iHasDialer.cs b/Essentials Devices Common/Essentials Devices Common/Codec/iHasDialer.cs index 59c9873f..c78237f6 100644 --- a/Essentials Devices Common/Essentials Devices Common/Codec/iHasDialer.cs +++ b/Essentials Devices Common/Essentials Devices Common/Codec/iHasDialer.cs @@ -22,7 +22,6 @@ namespace PepperDash.Essentials.Devices.Common.Codec void RejectCall(CodecActiveCallItem item); void SendDtmf(string digit); - //IntFeedback ActiveCallCountFeedback { get; } BoolFeedback IncomingCallFeedback { get; } } } \ No newline at end of file diff --git a/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs b/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs index f5066571..16fead9d 100644 --- a/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs +++ b/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs @@ -256,7 +256,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec SetNewCallStatusAndFireCallStatusChange(eCodecCallStatus.Incoming, call); _IncomingCall = true; IncomingCallFeedback.FireUpdate(); - //ActiveCallCountFeedback.FireUpdate(); } /// @@ -271,7 +270,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec SetNewCallStatusAndFireCallStatusChange(eCodecCallStatus.Incoming, call); _IncomingCall = true; IncomingCallFeedback.FireUpdate(); - //ActiveCallCountFeedback.FireUpdate(); } /// @@ -290,7 +288,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec { var sb = new StringBuilder(); foreach (var c in ActiveCalls) - sb.AppendFormat("{0} {1} -- {2}\r", c.Id, c.Number, c.Name); + sb.AppendFormat("{0} {1} -- {2} {3}\r", c.Id, c.Number, c.Name, c.Status); Debug.Console(1, "{0}", sb.ToString()); } diff --git a/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs b/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs index 6776281d..afd53923 100644 --- a/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs +++ b/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs @@ -55,7 +55,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec public VideoCodecBase(string key, string name) : base(key, name) { - //ActiveCallCountFeedback = new IntFeedback(ActiveCallCountFeedbackFunc); IncomingCallFeedback = new BoolFeedback(IncomingCallFeedbackFunc); PrivacyModeIsOnFeedback = new BoolFeedback(PrivacyModeIsOnFeedbackFunc); VolumeLevelFeedback = new IntFeedback(VolumeLevelFeedbackFunc); @@ -64,26 +63,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec InputPorts = new RoutingPortCollection(); - //ActiveCallCountFeedback.OutputChange += new EventHandler(ActiveCallCountFeedback_OutputChange); - ActiveCalls = new List(); } - /// - /// - /// - /// - /// - //void ActiveCallCountFeedback_OutputChange(object sender, EventArgs e) - //{ - // if (UsageTracker != null) - // { - // if (IsInCall) - // UsageTracker.StartDeviceUsage(); - // else - // UsageTracker.EndDeviceUsage(); - // } - //} #region IHasDialer Members public abstract void Dial(string s); diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UIUshortJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UIUshortJoin.cs index 4f42b960..69165d8d 100644 --- a/Essentials/PepperDashEssentials/UI/JoinConstants/UIUshortJoin.cs +++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UIUshortJoin.cs @@ -40,5 +40,10 @@ /// 3922 /// public const uint PresentationListCaretMode = 3922; + + /// + /// 15024 - Modes 0: On hook, 1: Phone, 2: Video + /// + public const uint CallHeaderButtonMode = 15024; } } \ No newline at end of file diff --git a/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/HuddleVTCPanelAvFunctionsDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/HuddleVTCPanelAvFunctionsDriver.cs index b4bbcb62..b041e28f 100644 --- a/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/HuddleVTCPanelAvFunctionsDriver.cs +++ b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/HuddleVTCPanelAvFunctionsDriver.cs @@ -155,6 +155,12 @@ namespace PepperDash.Essentials //PowerOffTimeout = 30000; //TriList.StringInput[UIStringJoin.StartActivityText].StringValue = "Tap an activity below"; + + // Reveal proper header buttons with/without lighting + if(false) // has lighting + TriList.SetBool(UIBoolJoin.CallLeftHeaderButtonVisible, true); + else + TriList.SetBool(UIBoolJoin.CallRightHeaderButtonVisible, true); } /// diff --git a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs index 1f34ba21..81d40683 100644 --- a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs +++ b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs @@ -15,6 +15,10 @@ using PepperDash.Essentials.Devices.Common.VideoCodec; namespace PepperDash.Essentials.UIDrivers.VC { + +#warning When InCall, keypad text should clear. Keypad becomes DTMF only. Delete is gone and disabled. Send keypresses immediately to SendDTMF. Queue them in disaply string. +#warning when Call ends, clear keypad text. +#warning FOR SPARK - (GFX also) we need a staging bar for in call state where there is no camera button /// /// This fella will likely need to interact with the room's source, although that is routed via the spark... /// Probably needs event or FB to feed AV driver - to show two-mute volume when appropriate. @@ -149,6 +153,13 @@ namespace PepperDash.Essentials.UIDrivers.VC TriList.UShortInput[UIUshortJoin.VCStagingConnectButtonMode].UShortValue = (ushort)(Codec.IsInCall ? 1 : 0); StagingBarInterlock.ShowInterlocked(Codec.IsInCall ? UIBoolJoin.VCStagingActivePopoverVisible : UIBoolJoin.VCStagingInactivePopoverVisible); + // Set mode of header button + if (!Codec.IsInCall) + TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 0); + else if(Codec.ActiveCalls.Any(c => c.Type == eCodecCallType.Video)) + TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 2); + else + TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 1); // Update list of calls var activeList = Codec.ActiveCalls.Where(c => c.IsActiveCall).ToList(); diff --git a/Release Package/PepperDashEssentials.cpz b/Release Package/PepperDashEssentials.cpz index 89eb5530..81e1d447 100644 Binary files a/Release Package/PepperDashEssentials.cpz and b/Release Package/PepperDashEssentials.cpz differ diff --git a/Release Package/PepperDashEssentials.dll b/Release Package/PepperDashEssentials.dll index 57c0aec8..9691c43d 100644 Binary files a/Release Package/PepperDashEssentials.dll and b/Release Package/PepperDashEssentials.dll differ