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